2.替换和不可替换元素,元素的格式化

2018-07-10  本文已影响0人  yaoyao妖妖

替换和不可替换元素

1.替换元素

<img><input><textarea>
<select><object>

1.替换的行内元素具有“内在尺寸”,尺寸是有自身决定的,而不会受周围环境的影响,如<img>和<input>等,但是如果同时定义<img>标签的width属性,和css的width属性,根据层叠原理,css的属性将优先于<img>标签的width属性;替换的行内元素的高度是有height属性决定;

2.非替换元素

2.非替换的行内元素(如 a,span等元素)的宽度是其内容经过浏览器解释后实际的宽度,而不能通过设定width属性为非替换的行内元素设置宽度,非替换的行内元素的高度是有框高度的行高决定的。

3.我们也知道,行内元素设置width,height无效。那么来了img标签、input标签为啥可以设置呢?

他们属于行内替换元素

1. 行内替换元素img input,除了具备行内元素同行并列的特点,他可以设置影响文档流布局的
内外边距以及宽高。且设置高度等同于设置行高,会垂直居中

2.margin 行内元素的边距,不会合并(替换非替换)。不同于块级元素,会合并上下,
左右边距。

盒模型

1.盒模型需要弄清的几个概念

1. 标准盒模型宽高指的是盒模型中内容的高度,盒模型指的是盒子在网页中占得的大小,当改变
margin,border,padding时,盒子的宽高不会改变,但是盒子在网页中占据的空间会变大。

2. IE盒模型宽高指的是盒模型中内容的高度+padding+border,根据Doctype确定是哪种盒子。

3. min-width/max-width有兼容性问题,IE不支持

4. 可以设置宽高的元素只有块级元素和替换元素。(img, input, textarea)

5. 垂直方向,两个相邻的元素都设置外边距,外边距会发生合并。

6. 内联元素和使用display:inline设置为内联元素的宽高无效,垂直方向的padding,margin
 无效,水平方向的padding,margin有效。

7. 块级元素和使用display:block设置为块级元素的padding,margin,width,height都生效。

8.  display:inline-block,元素呈现为inline,但是具有block特性。

9.  对于块级元素,设置height=line-height,可以垂直居中。

10. 盒子模型当只设置了宽或者高没有设置的时候,默认为auto,那么这个属性值是由盒子模型
 的内容和子元素的内容决定的,但是浮动的子元素不能撑开盒子。

html文档中的每个元素都被描绘成矩形盒子,盒模型通过四个边界来描述:margin(外边距),border(边框),padding(内边距),content(内容区域)


image.png
2.1 元素背景区域

如果边框的颜色为透明,背景将应用于内容,内边距和边框组成的区域。

2.2 水平格式化

非替换元素的水平格式化

水平格式化的7大属性值加起来是父级元素的width值
margin-left
border-left
padding-left
width
padding-right
border-right
margin-right
2.2其中margin-left,width,margin-right可以设置为auto。
1.如果三个属性中某个属性设置了auto:

设置auto的属性值=width-另外两个确定的值

2.三者的值都确定了但是总和不等于父级元素的width

在FF中,margin-right的值为开发者设定的值
在Chrome中,margin-right被强制为auto

3.如果margin-left和amrgin-right都设置为auto

margin-left和amrgin-right会设置相等的值,因此元素将在父级元素中居中,
注:text-align设置为center只适用于块级元素中的内联内容居中,并不能使块级元素居中。

4.某个外边距和width设置成auto

设置为auto的外边距会为0,width会设置为所需的值来填充父级元素。

5.全设置成auto

两个外边距会设置为0,width会尽可能宽。

6.负外边距

7个属性只要都是大于等于0的值,总和总是等于父级元素的width,不会超过父级元素的区域
但是可以通过制定负外边距来得到比父级元素width更大的区域
margin设置负值那么整个盒子的宽度会变大

替换元素的水平格式化

替换元素的水平格式化规则和非替换元素的规则类似,只有一个width有区别,如果width设置为auto,则元素的宽度是内容的固有宽度。注意:对于img标签,如果width不等于其固有宽度,则height也会等比例增加,除非设置特定值。反过来如果height设置高度,width也会等比例增加

2.3 垂直格式化的7大属性值加起来是父级元素的width值
margin-top
border-top
padding-top
height
padding-bottom
border-bottom
margin-bottom

其中margin-top,margin-bottom和height可以设置成auto

一个正常流中的块元素的margin-top和margin-bottom设置为auto后,会被设置为0,即不能将元素垂直居中,实际上元素没有外边距。定位元素如果设置成auto有不同的处理结果。

上一篇下一篇

猜你喜欢

热点阅读