Help! HTML

Stiu ca exista JSON si se poate elimina refresh-ul. Nu doresc. N-am timp sa invat JSON/DHTML/etc. acum.
AJAX, nu JSON. AJAX e JS asincron, JSON e un format de serializare de date mai complexe gen liste sau obiecte. DHTML nu e necesar.

Daca stii JS, AJAX e foarte simplu, iar cu JQuery e banal. Daca te intereseaza, spune-mi si iti dau un exemplu de cod in JQuery, in JS e mai mult de scris si nu am mai folosit AJAX in JS de vreo 2 ani. Scapi de refresh complet.
 
Am o pagina care contine 2 elemente: un tabel cu lungime variabila si un text fix lung.
As vrea ca textul sa fie in dreapta tabelului atunci cand exista spatiu orizontal (ecran landscape), sau dedesubt, daca nu (ecran portret).
Cum fac?

Am incercat float left pe tabel, dar nu prea imi place rezultatul. Daca tabelul e scurt, textul se continua sub tabel dupa ce a umplut spatiul din dreapta. As vrea sa ramana pe jumatatea lui de pagina. De asemenea nu prea imi place ca textul se "inghesuie" in dreapta daca ecranul este ceva mai ingust, dar nu atat de ingust incat sa se mute tot textul jos. Mi-ar place sa se mute jos la o latime minima disponibila.
 
Se da urmatorul HTML: http://marius95.go.ro/posted/html1.htm
1) De ce text-aling:justify nu merge? Am incercat si cu randuri multiple (<br>), dar tot nu merge. Cum altfel pot spatia elementele sa ocupe toata lungimea randului?
2) De ce raman spatii albastru-inchis intre anumite div-uri, dar nu si intre altele?
3) De ce chenarul rosu (de la link) depaseste fundalul albastru (de la div care contine link-ul)? Chenarele nu se iau in considerare la calculul dimensiunilor elementelor? Presupunand ca asa e normal sa fie, de ce am spatiu albastru in dreapta chenarului rosu?
4) De ce cozile de la "p" raman vizible dupa schimbarea tab-ului? Acelasi lucru se intampla cu linia de sub text daca aleg sa las link-urile subliniate.

PS: Culorile sunt absurde pentru a evidentia pozitionarea elementelor.
 

Attachments

  • html1.png
    html1.png
    1.9 KB · Views: 15
1) Justify înseamnă să aliniezi stânga-dreapta rândurile din text, mai puțin ultimul (ca la o carte). Nu funcționează pe un singur rând. Dai la toate div-urile width fix și le aliniezi la mijloc, dacă vrei să nu mai fie înghesuite. Sau le dai niște padding și aia e
2) pentru că ai conținut diferit în div-uri, browser-ul le tratează diferit (probabil contează și display:inline de la submeniu)
3) pentru că div-ul e mai mare decât link-ul și nu e setat https://www.w3schools.com/css/css_overflow.asp hidden ca să nu afișeze ce nu încape în div efectiv (ar trebui să-i dai și un height clar în cazul ăsta).
4) pentru că folosești z-index (adică le afișezi pe toate unele peste altele) în loc de display:none (ca să le ascunzi efectiv pe cele nefolosite); bine, modelul tău de meniu nu funcționează cu display:none

De ce e mai simplu să ne bați pe noi la cap decât să cauți "css tabbed menu" în google, să apeși "I'm feeling lucky" și să te duci la o implementare ok de tab-uri?
 
Am gugalit/citit despre tabbed menu, ca doar nu credeai ca am inventat eu meniul ala... Am pus intrebarile pentru ca m-am lovit de problemele astea cand am adaptat exemplul de pe net la necesitatile mele.
Nu ai explicat prea bine ce si cum, sau n-am inteles eu. Intre timp am mai citit. Uite explicatiile pe care le-am gasit dupa 2 ore de research.
1) Nu merge pentru justify nu se aplica ultimului rand, chiar daca e unul singur, iar <br> face ca ambele randuri sa fie "ultimele". Justify se aplica doar cand linia noua e fortata de dimensiunile ecranului. Si singura metoda de a spatia elementele este cu text-align-last:justify, care ... nu e standard.
2) pentru ca linia noua este tratata ca spatiu intre cuvinte :facepalm:
3) Pentru ca standard idiot:
The vertical padding, border and margin of an inline, non-replaced box start at the top and bottom of the content area, not the ’line-height’. But only the ’line-height’ is used to calculate the height of the line box.
BTW, la calcularea latimii se foloseste o logica rationala, care include padding, border, margin. Nu mai dau citatul. De ce au ales sa le ignore la calcularea dimensiunii verticale depaseste capacitatea mea de intelegere.
4) Pentru ca iar standard idiot:
The height of the content area should be based on the font, but this specification does not specify how. A UA may, e.g., use the em-box or the maximum ascender and descender of the font. (The latter would ensure that glyphs with parts above or below the em-box still fall within the content area, but leads to differently sized boxes for different fonts; the former would ensure authors can control background styling relative to the ’line-height’, but leads to glyphs painting outside their content area.)
 
Last edited:
Am un formular HTML pe o pagina cu <meta http-equiv="content-type" content="text/html; charset=utf-8">. In acel formular exista un camp text (nume pacient) unde trebuie sa se poata scrie caractere romanesti. Datele introduse acolo vor ajunge la analizoare. Desi n-am ajuns inca la partea de comunicare cu analizoarele, as vrea sa ma asigur de pe acum ca acel camp nu contine caractere de control inainte de a fi acceptat.
Pana sa trec la unicode/utf-8, am folosit cu succes ctype_print(). Banuiesc ca nu mai merge. Deci cum ar trebui sa fac?
Pe net am gasit diverse recomandari, majoritatea cu regex cu interval 0-31 si 127 (!?) sau cu blacklist. As vrea ceva simplu si rapid daca exista.
 
0-31. Nu stiu 127 cu ce se mananca si de ce il tot vad in black-list-uri...
Inca nu-mi e clar cum o sa convertesc multi-byte in ASCII. Ideea este sa nu-mi apara linii noi, tab-uri, ACK-uri si alte tampenii cand o sa trimit datele spre analizor. Analizoarele sunt chestii industriale. N-au auzit de UTF-8 sau unicode. Multe n-au auzit nici de ASCII 8-bit. 99% se conecteaza prin portul serial si folosesc caractere de control pentru diverse hand-shake-uri, delimitari, etc.
 
Last edited:
Analizorul stie caractere romanesti? Ori lasi un whitelist cu caractere acceptate (AZaz plus ȘȚșțĂÎÂăîâ) ori convertesti numele in Latin charset inainte de a le trimite la analizor.
 
<rant>
WTF!? Nu am voie sa pun <form> in tabel? Why the fuck not!? Cine a stabilit regula asta stupida?
</rant>
 
După cum ziceam mai sus, html e un hack. Poți să ai form în table cell, dar nu același form pe o parte din tabel (ori tot tabelul, ori o celulă). Ține de modul cum e interpretat tabelul - tot ce nu e într-o celulă e scos în afara tabelului.
 
Back
Top