Http://www.51css.net/html_css/div_css/2516.html
This article describes common browser bugs, focusing on IE browser bugs, common CSS hack and CSS comments, reduce unnecessary troubles in daily Div CSS layout;
This article is from www.51css.net.
Read more> CSS hack and backward compatibility
This article is from www.51css.net.
For Web, try to write code in XHTML format, and doctype affects CSS processing. As the W3C standard, doctype Declaration must be added.
This article is from www.51css.net.
For other information, see CSS hack for IE6, IE7, and Firefox.
1. Vertical center of Div
Vertical-align: middle;
Increase the line spacing to the same height as the entire Div line-Height: 200px;
Then insert the text to center vertically. The disadvantage is that you need to control the content rather than line feed.
2. Question about doubling margin
The DIV set to float doubles the margin set in IE. This is a bug in IE6.
The solution is to add the display: inline In the div;
For example:
<# Div id = "imfloat">
The corresponding CSS is
# Iamfloat
{
Float: Left; margin: 5px;/* in IE, 10px */
Display: inline;/* in IE, It is understood as 5px */
}
3. Double distance produced by floating IE
# Box {
Float: Left; width: 100px; margin: 0 0 0 100px; // in this case, ie will generate a PX distance display: inline; // ignore floating
}
Here we will elaborate on two elements: block and inline:
The block element is always starting on a new line. Its height, width, row height, and margins can be controlled (block element );
This article is from www.51css.net.
The Inline element is not controllable (embedded element) on the same line as other elements );
# Box
{
Display: block; // you can simulate embedded elements as block elements.
Display: inline; // implement the same row Arrangement
Diplay: Table;
}
4 issues with IE and width and height
IE does not recognize the Min-definition, but in fact it treats normal width and height as Min conditions. In this case, the problem is big. If only the width and height are used, the values in the normal browser will not change. If only Min-width and Min-height are used, the width and height under IE are not set at all.
For example, to set a background image, the width is important.
To solve this problem, you can:
# Box {width: 80px; Height: 35px ;}
HTML> body # Box
{
Width: auto; Height: auto; Min-width: 80px; Min-Height: 35px;
}
5. Minimum page width
Min-width is a very convenient CSS command, which can specify that the element is at least or less than a certain width, so as to ensure correct layout. But IE does not recognize this, but it actually uses width as the minimum width. To make this command usable on IE, you can place <div> under the <body> label and specify a class for div. Then, CSS is designed as follows:
This article is from www.51css.net.
# Container {Min-width: 600px; width: E-xpression (document. Body. clientwidth <600? "600px": "Auto ");}
The first Min-width is normal, but the width of line 2nd uses JavaScript, which is recognized only by IE, which will make your HTML document not formal. It actually achieves the minimum width through javascript judgment.
6. The bug that DIV floating ie text produces 3 pixels
The left object floats, and the left margin of the outer patch is used to locate the patch on the right. The text in the right object is 3 px away from the left.
# Box {float: Left; width: 800px ;}
# Left {float: Left; width: 50% ;}
# Right {width: 50% ;}
* Html # Left {margin-Right:-3px; // This sentence is critical}
<Div id = "box">
<Div id = "Left"> </div>
<Div id = "right"> </div>
</Div>
7. Questions about Internet Explorer
When the DIV application is complicated, there are some links in each column. When the DIV application is complicated, it is prone to the "hide and seek" issue. Some content cannot be displayed. When you select this area, the content is displayed on the page. This article is from www.51css.net.
Solution:
Use the line-height attribute for # layout or use fixed height and width for # layout. The page structure should be as simple as possible.
8. Float Div closure; clear floating; adaptive height;
① For example, <# Div id = "floata"> <# Div id = "floatb"> <# Div id = "notfloatc"> the notfloatc here does not want to continue translation, instead, we want to move it down. (The attributes of floata and floatb have been set to float: Left;) This code has no problem in IE, and the problem lies in ff. The reason is that notfloatc is not a float label and must be closed. Add <# Div class = "floatb"> <# Div class = "notfloatc"> <# Div class = "clear"> the position of the div, it must be at the same level as the two DIV with the float attribute. No nested relationship exists between them; otherwise, an exception occurs. And define the clear style as follows:. Clear {clear: Both ;}
Do not set the height of an external wrapper Div.
To enable automatic height adaptation, overflow: hidden should be added to the wrapper; when the box containing float is included, the automatic height adaptation in IE is invalid, at this time, the private attribute of IE layout should be triggered (Internet Explorer !) Zoom: 1; can be used to achieve compatibility. This article is from www.51css.net.
For example, a wrapper is defined as follows:. colwrapper {overflow: hidden; ZOOM: 1; margin: 5px auto ;}
9. For typographical
The most commonly used CSS description may be float: Left. Sometimes we need to make a unified background behind the float DIV in the N column,
For example: <Div id = "page"> <Div id = "Left"> </div> <Div id = "center"> </div> <Div id = "right"> </div>
For example, we need to set the background of the page to Blue to make the background color of all three columns blue,
However, we will find that, as the left center right is stretched down, the height of the page remains unchanged, and the problem arises,
The reason is that the page is not a float attribute, and because the page is centered, it cannot be set to float,
Therefore, we should solve the problem as follows:
<Div id = "page">
<Div id = "BG" style = "float: Left; width: 100%">
<Div id = "Left"> </div> This article is from www.51css.net.
<Div id = "center"> </div>
<Div id = "right"> </div>
</Div>
</Div>
Embed a float left and the DIV with a width of 100%.
10. Universal float closure (very important !)
For details about the principle of clear float, see [How to clear floats without structural markup]. Add the following code to global CSS and add class = "Clearfix" to the DIV to be closed.
/* Clear fix */
. Clearfix: After {content: "."; display: block; Height: 0; clear: Both; visibility: hidden ;}
. Clearfix {display: inline-block ;}
/* Hide from IE Mac */
. Clearfix {display: block ;}
/* End hide from IE Mac */
/* End of Clearfix */
Alternatively, set. hackbox {display: Table; // display the object as a block-level table.} This article is from www.51css.net.
11. highly unsuitable
Height mismatch means that the height of the outer layer cannot be automatically adjusted when the height of the inner layer object changes, especially when the inner layer object uses margin or paddign.
Example:
# Box {background-color: # Eee ;}
# Box P {margin-top: 20px; margin-bottom: 20px; text-align: center ;}
<Div id = "box">
<P> content in the p object </P>
</Div>
Solution:
Add two empty Div object CSS codes to the upper and lower sides of the P object:
. 1 {Height: 0px; overflow: hidden;} or add the border attribute to the div.
12. Why is there a gap in the image under IE6?
There are also many ways to solve this bug,
It can be to change the HTML layout,
Or set IMG to display: block.
You can also set the vertical-align attribute to vertical-align: Top | bottom | Middle | text-bottom.
13. Align text and text input boxes
Add vertical-align: middle;
This article is from www.51css.net.
<Style type = "text/CSS">
<! --
Input {width: 200px; Height: 30px; Border: 1px solid red; Vertical-align: middle ;}
-->
</Style>
14. What is the difference between ID and class defined in web standards?
I. duplicate IDs are not allowed in web standards. For example, div id = "AA" cannot be repeated twice, while class defines classes, which can be infinitely repeated in theory, in this way, you can use the definition that requires multiple references.
2. the attribute priority problem ID has a higher priority than the class. See the example above.
III. convenience for JS and other client scripts. If you want to perform script operations on an object on the page, you can define an ID for it. Otherwise, you can only find it by traversing the page element and adding specific attributes, this is a relatively time-consuming resource, which is far less simple than an ID.
15. How to display the content in Li with ellipsis after the content length exceeds
This method is applicable to IE and opbrowser.
<Style type = "text/CSS">
<! --
Li {
Width: 200px;
White-space: nowrap;
Text-overflow: ellipsis;
-O-text-overflow: ellipsis;
Overflow: hidden;
} This article is from www.51css.net.
-->
</Style>
16. Why can't I set the color of the scroll bar in Web Standard ie?
Solution:
Change body to HTML
<! Doctype HTML public "-// W3C // dtd xhtml 1.0 strict // en" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<Meta http-equiv = "Content-Type" content = "text/html; charset = gb2312"/>
<Style type = "text/CSS">
<! --
HTML {
Scrollbar-face-color: # f6f6f6;
Scrollbar-Highlight-color: # FFF;
Scrollbar-shadow-color: # eeeeee;
Scrollbar-3dlight-color: # eeeeee;
Scrollbar-arrow-color: #000;
Scrollbar-track-color: # FFF;
Scrollbar-darkshadow-color: # FFF;
This article is from www.51css.net.
}
-->
</Style>
17. Why cannot I define a container with a height of around 1 px?
In IE6, this problem is caused by the default Row Height,
There are also many solutions
Example: overflow: hidden | ZOOM: 0.08 | Line-Height: 1px
18. How can I display layers on flash?
The solution is to make flash transparent.
<Param name = "wmode" value = "Transparent"/>
19. How to center a layer vertically in the browser
Here we use the absolute percentage position, and the method of negative value of the external patch, the negative value is its own width and height divided by 2
<Style type = "text/CSS">
<! -
Div
{
Position: absolute;
Top: 50%;
Lef: 50%;
Margin:-100px 0 0-100px;
Width: 200px;
Height: 200px;
Border: 1px solid red. This article is from www.51css.net.
}
-->
</Style>
This article is from www.51css.net.
Ff and IE this article is from www.51css.net
1. Div Center
When Div sets margin-left and margin-Right to auto, it is already centered,
IE doesn't work. ie needs to set the body to center,
First, define text-algin: center in the parent element;
This means that the content in the parent element is centered.
2. Border and background of the Link (a tag)
Add the border and background color to the link. Set display: block and float: left to avoid line breaks.
Refer to menubar to set the height of a and menubar to avoid misplacement of the bottom side,
If no height is set, you can insert a space in menubar.
3. Problems with the hover style after hyperlink access
The hyperlink style that has been clicked and accessed does not have hover or active
Solution:
Changing the order of CSS properties: L-V-H-A
Code:
<Style type = "text/CSS">
<! --
A: link {}
A: visited {}
A: hover {}
A: active {}
-->
</Style>
4. cursor
Cursor: pointer can display the cursor finger in IE ff at the same time,
Hand can only be IE
This article is from www.51css.net.
5. UL's padding and margin
The ul tag has a padding value by default in ff,
In IE, only margin has the default value,
Therefore, defining ul {margin: 0; padding: 0;} can solve most of the problems.
6. Form tag
In IE, this label will automatically margin some margins, while in FF, margin is 0,
Therefore, if you want to display the same data, it is best to specify the margin and padding in CSS,
For the above two problems, this style is generally used in my CSS.
Ul, FORM {margin: 0; padding: 0 ;}
Definition is dead, so it won't be a headache in the future.
7. Inconsistency of Box Model Interpretation
The box model interpretation in ff and IE is inconsistent, resulting in a 2px difference
Solution:
Div {margin: 30px! Important; margin: 28px ;}
Note that the order of the two margin values must not be reversed. The attribute IE of important cannot be identified,
But other browsers can recognize it.
So in IE, it is actually explained as follows:
Div {maring: 30px; margin: 28px}
If the definition is repeated, execute the last one. Therefore, you cannot write only margin: xx px! Important;
# Box
{
Width: 600px; // For ie6.0 \ This article is from www.51css.net.
-W \ idth: 500px; // for FF + ie6.0}
# Box {
Width: 600px! Important // for FF
Width: 600px; // for FF + ie6.0
Width/**/: 500px; // For ie6.0 -}
8. Attribute selector (this is incompatible and is a bug in hiding CSS)
P [ID] {} Div [ID] {}
This is hidden for versions earlier than ie6.0 and ie6.0,
Ff and opera functions. The attribute selector and the sub-Selector are different,
The range of the sub-selector is reduced in the form,
The attribute selector has a large range,
For example, in P [ID], all P tags have IDs in the same style.
9. The most cruel means -! Important;
If there is no way to solve some detailed problems,
You can use this method. FF "! Important will automatically give priority to resolution,
However, ie will ignore.
As follows:
. Tabd1
{
Background: URL (/RES/images/up/tab1.gif) No-repeat 0px 0px! Important;/* style for FF */
Background: URL (/RES/images/up/tab1.gif) No-repeat 1px 0px;/* style for IE */}
This article is from www.51css.net.
It is worth noting that XXXX must be added! Important is placed on the other sentence, which has been mentioned above
10. Questions about default values of IE and FF
Maybe you have been complaining about why writing different CSS for IE and ff,
Why is it that IE is a headache, and then write CSS while cursing the hateful M $ ie.
In fact, for the standard support of CSS, ie is not as bad as we think,
The key is that the default values of IE and FF are different. I have mastered this technique,
You will find that writing CSS compatible with ff and IE is not that difficult, maybe for simple CSS,
You don't have "! Important.
We all know that when a browser displays a webpage, it determines how to display it based on the CSS style sheet of the webpage,
However, we may not describe all the elements in the style sheet,
Of course there is no need to do that, so for those attributes that are not described,
The browser uses the built-in default mode for display, such as text,
If you do not specify a color in CSS, the browser uses black or system color to display the background of the Div or other elements,
If it is not specified in CSS, the browser sets it to white or transparent, and so on.
So the root cause of the difference between FF and IE display is that their default display is different, and how to display this default style? I know there are no corresponding standards in W3 to define, this article is from www.51css.net.
So don't blame ie for this.
11. why can't the FF text support the height of the container?
Containers with fixed height values in standard browsers will not be opened as in IE6,
Then I want to fix the height and how can I set it to be supported?
The method is to remove the Min-Height: 200px setting of height;
In order to take care of IE6 who do not know Min-height
You can define {Height: auto! Important; Height: 200px; Min-Height: 200px ;}
12. How to enable automatic line feed for continuous long fields in Firefox
We all know that Internet Explorer can use Word-wrap: Break-word directly,
In ff, we use the JS insert method to solve the problem.
<Style type = "text/CSS">
<! --
Div
{
Width: 300px;
Word-wrap: Break-word;
Border: 1px solid red ;}
-->
</Style>
<Div id = "FF"> here is a long line of text aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa </div>
<SCR platinum PT Type = "text/plain Cr platinum PT"> This article is from www.51css.net.
/* <! [CDATA [*/
Function tobreakword (El, intlen)
{
VaR export bj = Document. getelementbyid (EL );
VaR strcontent = obj. innerhtml;
VaR strtemp = "";
While (strcontent. length> intlen)
{
Strtemp + = strcontent. substr (0, intlen) + "";
Strcontent = strcontent. substr (intlen, strcontent. Length );
}
Strtemp + = "" + strcontent;
OBJ. innerhtml = strtemp;
}
If (document. getelementbyid &&! Document. All)
Tobreakword ("FF", 37 );
/*]> */This article is from www.51css.net.
</Scr platinum Pt>
13. Why is the container width and FF interpretation different under IE6?
<? XML version = "1.0" encoding = "gb2312"?>
<! Doctype HTML public "-// W3C // dtd xhtml 1.0 strict // en" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<Meta http-equiv = "Content-Type" content = "text/html; charset = gb2312"/>
<Style type = "text/CSS">
<! -- Div
{
Cursor: pointer;
Width: 200px;
Height: 200px;
Border: 10px solid red
}
-->
</Style> This article is from www.51css.net.
<Div export nclick = "alert (this. offsetwidth)"> make Firefox compatible with IE </div>
The difference is whether the overall width of the container includes the Border width,
Here, IE6 is interpreted as 200px, while FF is interpreted as 220px. How is the problem caused?
If you remove the XML at the top of the container, you will find that the original problem exists. The declaration at the top triggers the qurks mode of IE and related knowledge about qurks mode and standards mode,
Please refer to: http: // www.microsoft.com/china/msdn/library/webservices/asp.net/ aspnetusstan. mspx? MFR = true
IE6, IE7, and FF ie7.0 are coming out, and there are new problems with CSS support. When there are more browsers and the webpage compatibility is worse, we are still exhausted,
To solve ie7.0 compatibility problems, I found the following article:
I use most of them now! Important comes to hack. It can be displayed normally for IE6 and Firefox tests,
But IE7! Important can be correctly explained, and the page will not be displayed as required! This article is from www.51css.net.
This article is from www.51css.net.
The following shows the compatibility of the three browsers. This article is from www.51css.net.
The first is the CSS hack method.
Height: 20px;/* For Firefox */
* Height: 25px;/* For IE7 & IE6 */
_ Height: 20px;/* For IE6 */
Pay attention to the sequence.
This also belongs to CSS hack, but it is not as concise as above.
# Example {color: #333;}/* Moz */
* Html # example {color: #666;}/* IE6 */
* + Html # example {color: #999;}/* IE7 */This article is from www.51css.net.
Second, condition comments
<! -- Other browsers->
<LINK rel = "stylesheet" type = "text/CSS" href = "css.css"/>
<! -- [If IE 7]> <! -- Suitable for IE7>
<LINK rel = "stylesheet" type = "text/CSS" href = "ie7.css"/>
<! [Endif]->
<! -- [If lte ie 6]>
<! -- Suitable for IE6 and later->
<LINK rel = "stylesheet" type = "text/CSS" href = "ie.css"/>
<! [Endif]->
This article is from www.51css.net.
Third, the CSS Filter method, which is translated from a foreign website as a classic.
Create a CSS style as follows:
# Item
{
Width: 200px;
Height: 200px;
Background: red;
}
This article is from www.51css.net.
Create a new Div and use the CSS style defined above:
<Div id = "item"> some text here </div>
Add the lang attribute in the body representation. The Chinese character is Zh: <body lang = "en">
Now, define another style for the DIV element: *: Lang (en) # item {Background: Green! Important ;}
This is intended for use! Important overwrites the original CSS style. Since the Lang selector ie7.0 does not support this sentence, it does not have any effect on this sentence,
As a result, it achieves the same effect in ie6.0, but unfortunately safari does not support this attribute, so you need to add the following CSS style:
# Item: Empty {Background: Green! Important}
: The empty selector is a css3 specification, although safari does not support this specification,
However, this element will still be selected. Whether or not this element exists, Green will now be available in browsers other than IE versions.
For compatibility with IE6 and FF, consider the previous! Important prefers the first method, which is concise and compatible. This article is from www.51css.net.