Problem with div background or background image of variable height not displaying_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:42:27
Original
1326 people have browsed it

When using div css for web page layout, if the external div has a background color or border without setting its height, it will display normally under the IE browser. However, when browsing using Firefox/opera, there is a problem that the background color and border of the outermost Div do not work.

General structure

<style>.a1 {width:100px;background:red;}.b1 {background:blue;width:50px;height:600px;}</style></head><body><div class="a1">    <div class="b1"></div></div>    </body>
Copy after login

Cause analysis: Because in Firefox and Opera: if the DIV inside is float (float) and the parent body will not calculate the child The height after the body float. This kind of calculation is supported in IE, so it works normally under IE.

So there are two prerequisites for this problem: 1. The outer div has no height set; 2. The inner div is floating (with the float attribute).

Generally, we are not sure of the height of the outer div, so we clear the float.

Realize how the background color or image inside the div will grow accordingly after it grows.

.a1{width:100px;background:red;height:auto !important;     height:550px;     min-height:550px;}.a1:after {    content:".";     height:0;     visibility:hidden;     display:block;     clear:both;      }
Copy after login

1. Add code at the end of Div:



Or use




2. Use the after pseudo-class

This method is to use the after pseudo-class and content on the parent container Statement adds new content to the end of the specified current content. A common approach is to add a "dot" because it is smaller and less noticeable. Then we use it to clear the float (close the floated element) and hide the content.

This method has general compatibility, but after various hacks, it can cope with different browsers, and at the same time it can ensure that the html is relatively clean, so it is still used more often.

The code is as follows:


#a1:after{
content: ".";
height:0 ;
visibility:hidden;
display:block;
clear:both;
}


3. Set overflow to hidden or auto

This method is to set the overflow of the parent container to hidden or autot to close the floating element in a standard compatible browser.

However, when using overflow, it may affect the page performance, and This impact is uncertain, you'd better test your page on multiple browsers

4. Float external elements, float-in-float

This approach is Let the parent container also float, which takes advantage of a characteristic of floating elements? Floating elements will close floating elements. This method has good results in IE/Win and standard-compatible browsers, but the shortcomings are also obvious. The parent container may not float just because it wants to float. After all, floating is a special behavior, and sometimes the layout is not correct. Allowing it to float is also normal.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template