Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Se poate recupera numar de telefo...

Upgrade de la MacBook Pro M1 cu 8...

Ce tip de monitor am nevoie pt of...

Resoftare camera supraveghere
 Cu ce va aparati de cainii agresi...

Nu imi platiti coletul cu cardul ...

Exista vreun plan de terorizare p...

Schimbare adresa DNS IPv4 pe rout...
 Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric

CIV auto import
 Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...

Cumparat/Locuit in apartament si ...
 

Borderul nu se afiseaza corect

- - - - -
  • Please log in to reply
8 replies to this topic

#1
AccesInterzis

AccesInterzis

    Junior Member

  • Grup: Members
  • Posts: 54
  • Înscris: 06.02.2009
Am urmatoarea problema.
Am divul principal <div id="main"> in care bag tot continutul. Acest dv este centrat si are un border de un 1px. In interiorul lui am doua paragrafe cu text. Primul paragraf il aliniez la stanga cu float:left;, pe celalat il aliniez la dreapta cu float:right. Problema mea e ca din cauza acestor float-uri borderul  
divului principal nu se mai afiseaza corect. Daca nu le`as da float la paragrafe borderul s`ar vedea corect. Dar eu vreau sa le aliniez totusi. Poate cineva sa imi spuna de ce se comporta asa borderul divului principal?
Codul arata asa:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html>
<head>
<title>Page title</title>
<style type="text/css">
div#main {
	width:630px;
	margin:0 auto;
	border:1px #ccc solid;
}

div#main p#left {
	width:45%;
	float:left;
}

div#main p#right {
	width:45%;
	float:right;
}
</style>
</head>
<body>
<div id="main">
	<p id="left">
	Lorem Ipsum is simply dummy text of the printing and typesetting industry. 
	Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, 
	when an unknown printer took a galley of type and scrambled it to make a type specimen book. 
	It has survived not only five centuries, but also the leap into electronic typesetting, 
	remaining essentially unchanged. It was popularised in the 1960s with the release of 
	Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like 
	Aldus PageMaker including versions of Lorem Ipsum.
	</p>
	
	<p id="right">
	It is a long established fact that a reader will be distracted by the readable content of a page when 
	looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution 
	of letters, as opposed to using 'Content here, content here', making it look like readable English. 
	Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, 
	and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions 
	have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
	</p>
</div>
</body>
</html>


#2
senoctar

senoctar

    Member

  • Grup: Members
  • Posts: 733
  • Înscris: 01.07.2006
Inaltimea div-urilor float nu se ia in considerare la calculul inaltimii parintelui.
http://www.w3.org/TR...ren.html#floats

Quote

Since a float is not in the flow, non-positioned block boxes created before and after the float box flow vertically as if the float did not exist.
Exista totusi o metoda sa faci un element "constient" de existenta float-urilor si sa si fie in flow ca sa fie luat in seama la inaltime.
Trebuie sa pui dupa paragrafele tale un element de genul:
<div style="clear:both"></div>


#3
Jumping Jack

Jumping Jack

    Member

  • Grup: Members
  • Posts: 622
  • Înscris: 12.09.2007

View Postsenoctar, on 9th December 2009, 22:58, said:

Exista totusi o metoda sa faci un element "constient" de existenta float-urilor si sa si fie in flow ca sa fie luat in seama la inaltime.
Trebuie sa pui dupa paragrafele tale un element de genul:
<div style="clear:both"></div>

De ce mama dracului va incapatinati sa dati solutii care nu sint corecte? Nu spun ca nu functioneaza, insa din punct de vedere semantic este gresit, pentru ca folosesti elemente de structura cu unicul scop de a rezolva probleme de aspect.
De mai bine de 3 ani exista solutie nestructurale de a rezolva acest aspect, e vorba de :after.
Se da containerului parinte (atentie: acesta nu are voie sa aibe float) clasa .clearfix, si in css se defineste asa:
.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	visibility: hidden;
	line-height: 0;
	height: 0;
}
 
.clearfix {
	display: inline-block;
}
 
html[xmlns] .clearfix {
	display: block;
}
 
* html .clearfix {
	height: 1%;
}
In cazul asta, containerul parinte este div#main. In html o sa arate asa:
<div id="main"[b] class="clearfix"[/b]>
<div id="left"></div>
<div id="right"></div>
</div>
Am schimbat p#left si p#right cu div-uri, ca poate mai bagi si alte paragrafe acolo, liste, alea-alea.
Merge in orice browser cunoscut omului. Descriere completa a metodei, precum si explicatii referitoare la float samd, gasesti aici:
http://www.positioni...syclearing.html

#4
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
Ha ha, wrong și tu. :P Cea mai simplă soluție este orice overflow în afară de visible (adică hidden sau auto că scroll presupun că nu vrea), aplicat pe div#main. Plus că unele browsere (IE6 ;)) mai au nevoie de un width explicit pe #main.

http://www.quirksmod...s/clearing.html

#5
Jumping Jack

Jumping Jack

    Member

  • Grup: Members
  • Posts: 622
  • Înscris: 12.09.2007

View Postwirespot, on 14th December 2009, 22:26, said:

Ha ha, wrong și tu. :P Cea mai simplă soluție este orice overflow în afară de visible (adică hidden sau auto că scroll presupun că nu vrea), aplicat pe div#main. Plus că unele browsere (IE6 ;) ) mai au nevoie de un width explicit pe #main.

http://www.quirksmod...s/clearing.html

Ha ha, wrong pe dracu!  Ce e wrong acolo? E mai lunga, insa este cit se poate de corecta.
Dar solutia data de tine, de la quirksmode, este intr-adevar cea mai simpla. Ciudat este ca desi o stiam mai demult (mi-am amintit cind m-am dus la linkul dat de tine), nu cred ca am folosit-o vreodata. Doar chestia cu width explicit pt ie6 este un dezavantaj, insa nu unul major.
Se accepta :)

Edited by Jumping Jack, 15 December 2009 - 14:14.


#6
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
Wrong în sensul că :after e din păcate încă departe de-a fi universal. Ca și șmecheria cu overflow, dar măcar la aia există un fix relativ simplu și larg implementat (width). :)

În rest ai perfectă dreptate cu elementele non-semantice. Din păcate mulți designeri le folosesc en gros pentru implementarea graficii, deci degeaba le spui de faza asta cu clearing floats că oricum le-au folosit în 20 de alte locuri pentru alte chestii.

#7
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Din fericire, multi designeri nici nu inteleg ce vrei sa spui prin "design semantic", deci relaxeaza-te si nu mai explica, ca explici degeaba.
Iar cei care ar intelege, stiu deja despre aceste lucruri, nu mai au nevoie de explicatii.

#8
wirespot

wirespot

    Senior Member

  • Grup: Senior Members
  • Posts: 6,654
  • Înscris: 23.09.2002
Dacă un designer are pretenția că știe CSS și vrea să facă el implementarea în HTML, atunci să învețe.

#9
xnoise

xnoise

    Active Member

  • Grup: Members
  • Posts: 1,310
  • Înscris: 08.02.2007
overflow-ul aparent este cea mai buna si simpla solutie. dar sunt cazuri in care acesta este nesigur si afecteaza afisarea documentului in diverse browsere [nu mai tin minte uned m-am lovit de asta in momentul acesta, dar daca imi aduc aminte reproduc cazul si il postez.]. In acest moment .clearfix este metoda care functioneaza garantat 100% din cazuri. Desi este partial incorecta pentru ca foloseste un hack, si de obicei mor cand vad hack-uri. Dar este unul din cazurile in care poti bate un bug numai cu ajutorul altui bug.

Edited by xnoise, 18 December 2009 - 17:33.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate