html - CSS layout clear both affects the flow -


why <h1> tag clear both @ bottom, if rid of "clear both", works fine, how can work clear both?

<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=gbk"/> <style> #left{     float:left;     width:200px;     height:400px;     background:#cfc; } #main{     margin-left:210px;     background:#f9c;     height:400px; } h1{     clear:both; } </style> </head> <body> <div id="left"></div> <div id="main">     <h1>test</h1> </div> </body> </html> 

your questions:

1- why tag clear both @ bottom?

according css specs clear:

both
requires top border edge of box below bottom outer edge of right-floating , left-floating boxes resulted elements earlier in source document.

so clear:both; on h1 clears float on earlier element, not part of containing div of h1.

2- how can work clear both?

if need keep clear:both; on h1 , keep @ beginning of container div, simplest way add overflow:auto; container.

demo

#main {     margin-left:210px;     background:#f9c;     height:400px;     overflow:auto; } 

Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -