css布局属性介绍
显示属性display
-
每个html元素都有一个默认的显示值
-
元素类型不同,默认的显示值也不同
-
大部分元素默认值为:
inline
,block
inline
:元素显示为行内元素,创建从行内接着开始block
:元素显示为块级元素,创建从新行开始none
:隐藏元素,使该元素不占用隐藏前的空间hidden
:隐藏元素,与none
不同,该元素仍将占用它隐藏前相同的空间,可通过visibility:visible
再显示,这在应用JavaScript动态控制元素显示和隐藏是非常有用
元素类型
行内元素
- 行内元素不可设置宽高样式,即
width
,height
- 行内元素可设置边框线样式,即
border
- 行内元素可以设置内填充样式,即
padding
- 行内元素可以设置左右方向的外边距样式,即
margin-left
,margin-right
块级元素
-
块元素可以设置盒模型的全部样式,但会独占一行
-
通过设置
display:inline-block
来满足行内元素和块级元素的特点- 元素会像行内元素一样排列,默认宽度由行内元素决定
- 可以像块级元素一样设置宽度和高度,并且可以包含块级元素。
css嵌套规则
- 块级元素可以包含行内元素或某些块元素,但行内元素却不能包含块元素,它只能宝海其他的行内元素
- 块元素不能放在p元素里面
- 有几个特殊的块级元素只能包含行内元素,不能再包含块元素,这几个特殊的元素是:h1、h2、h3、h4、h5、h6、p、dt
- 块级元素一般与块级元素并列、行内元素一般与行内元素并列
内容溢出处理
基本属性
overflow
属性用于元素内容太大,无法容纳在指定区域时候,是否要裁剪内容或添加滚动条
visible
:默认值。溢出的内容没有被剪掉hidden
:溢出的内容被剪切scroll
,auto
:溢出的内容被剪切,但增加滚动条来查看溢出的内容
若希望对水平和垂直方向溢出设置不同属性,可通过设置overflow-x
、overflow-y
进阶溢出处理
若要示意读者:内容不全可以点击查看详细内容
.test_txt{
overflow:hidden;
white-space:nowrap /*设置文本内容只在一行显示*/
text-overflow:ellipsis;/*溢出的文本内容用省略号*/
}
浮动
基础介绍
添加 float
浮动属性,使目标元素脱离文档流,如图所示浮动
float
常用属性有:left
、center
、right
,均仅在水平左右浮动
浮动清理
方法1.overflow:auto
:对于浮动超出边界的元素,父元素可以自动的做调整
方法2.clear
属性,用于不希望某个元素受前面浮动元素影响时使用
常用属性:left
、right
、both
表示元素不受到左、右、左右浮动影响
定位
基础介绍
设置属性position
实现各种定位,以下是常用属性值
relative
:相对定位- 需要配合left、top、right、bottom这些定位属性才能生效
relative
相对的是容器自身的屏幕坐标(0,0)点- 容器位置发生位移后,原来占据的空间依然保留
- 默认会覆盖没有定位的容器
absolute
:绝对定位- 使用后脱离文档流
- 默认情况下,绝对定位的参照点是body元素的坐标起始点
- 绝对定位的参照点为,有定位设置(
static
定位除外)的离他最近的祖先元素的(0,0)点坐标 - 默认会覆盖没有定位的容器
fixed
:固定定位- 固定定位的元素是相对与浏览器视口定位的,这意味着即使页面发生滚动,它也始终保持在同一位置
- left、top、right、bottom属性被用来定位元素,但不是必须的
sticky
:黏性定位- 父元素不能添加
overflow:hidden
或者overflow:auto
属性 - 元素自身必须声明left、top、right、bottom一个或多个属性,否则就相当于静态定位了,这里设置的位置值并不是该元素初始位置,而是滚动页面时当达到基于父元素的此位置值时生效
- 父元素的高度不能低于
sticky
定位元素的高度 sticky
定位元素仅在其父元素内生效
- 父元素不能添加
static
:静态定位,默认值
堆叠顺序
设置z-index
属性值来设置元素在页面上显示的优先级,值越大,优先级越高
盒模型
IE盒模型(怪异盒)
设置box-sizing:border-box
,特点如下:
- 通常默认情况下,元素的宽度和高度只包括内容区域,不包括内边距(padding)、边框(border)和外边距(margin)。
- 使用
border-box
后,元素的宽度和高度包括了内容区域、内边距和边框,但不包括外边距。这意味着,当你设置一个元素的宽度和高度时,它将包括内边距和边框,这可以简化布局和设计过程。