When using the PURECSS framework, a problem is encountered. Input box, I gave them width and padding values, I found that in Firefox and Google found that increasing the padding value does not affect the final width, and under IE6 7 will affect the width. It was later found that the pure framework set box-sizing for the input box (IE6 7 is not supported) and I have to set different widths respectively. Therefore, in the use of this framework, in order to unify, should be set Input[type=text] {box-sizing:content-box;-moz-box-sizing:content-box;}
Here is the information we found: Source: http://segmentfault.com/q/1010000000413229
Input text box What is the difference between using text-indent and Padding-left, and which is good?
Overall, text-indent
does not affect the final width of the element but there is a compatibility issue, padding-left
in the Chinese mainstream browser ie lower version of the final width, but in Chrome and Firefox does not affect the width, but the CSS reset can be used to solve the problem of multi-browser display, So that they eventually all affect the width.
text-indent
and padding-left
the basic difference:
padding-left
Box-based model for elements at the inline and block levels
text-indent
Based on inline layout, applies only to block-level elements and acts as the inner first line of elements for the block hierarchy
Almost all of their performance distinctions are the difference between the two.
padding-left
inline框
block框
the left padding area that acts on or affects Content-box, and the text child nodes appear inside the Content-box, so all text moves to the left.
text-indent
block框
the first line of text that will act on. Whether the text exceeds the width white-space
of the container is truncated by the corresponding rule, or the carriage return in the text is retained by white-space
the corresponding rules, resulting in the second row of the third row of the nth row appears, followed by the second row of the third row of the nth row will not be applied to the corresponding indent. text-indent
The purpose of this is to simulate the first line indentation effect in real-world typesetting requirements.
http://jsfiddle.net/humphry/3bSSX/
<input type="text">
As a Inline-block-level label, it is a fixed single-line display (and is not the same as the white-space
mechanism), the differences described above do not exist.
So where is the difference:
-
text-indent
based on inline layout, causing Direction:rtl
to be applied text-indent
The provided indent appears on the right, and Padding-left
is not affected by direction
.
Of course, direction
This property is not commonly used in <input type= "text";
-
Padding-left
based on the box model, so box-sizing
properties and The Padding-left
, width
property together affect the final width of the element, while text-indent
always does not affect the width of the element.
This is important because the default style table for WebKit and Firefox sets the input element's Box-sizing:border-box
If you set the width
and padding-left
at the same time, there will be a large width difference between the Webkit/firefox and the lower versions of IE.
So when you use padding-left
, you need to reset the corresponding styles for WebKit and Firefox:
input[type=text] { box-sizing : content-box; -moz-box-sizing : content-box; }
After resetting the style, in all browsers, the valid Padding-left is added to the final width of the element in all cases, as shown above Jsfiddle. This is something that needs extra consideration.
Box-sizing value issues in input box and pure frame