css学习23:使用盒模型

1、为元素应用内边距

应用内边距会在元素内容和边框之间添加空白。我们可以为内容盒的每个边界单独设置内边距,或者使用padding简写属性在一条声明中设置所有的值。

属性说明
padding-top为顶边设置内边距长度值或百分数
padding-right为右边设置内边距长度值或百分数
padding-bottom为底边设置内边距长度值或百分数
padding-left为左边设置内边距长度值或百分数
padding简写属性,在一条声明中设置所有边的内边距1~4个长度值或百分数
2、为元素应用外边距

外边距是元素边框和页面上围绕在它周围的所有东西之间的空白区域。围绕在它周围的东西包括其他元素和它的父元素。

属性说明
margin-top设置元素盒子四个外边距宽度的简写属性
margin-right设置盒子下外边距的宽度
margin-bottom设置盒子左外边距的宽度
margin-left设置盒子右外边距的宽度
margin设置盒子上外边距的宽度
3、控制元素的尺寸

浏览器会基于页面上内容的流设置元素的尺寸。有几条比较恐怖的详细规则是浏览器在分配尺寸的时候必须遵循的。使用尺寸相关的属性可以覆盖这些行为。

属性说明
width设置元素的宽度和高度auto,长度值或者百分数
height
min-width为元素设置最小可接受宽度和高度auto,长度值或者百分数
min-height
max-width为元素设置最大可接受宽度和高度auto,长度值或者百分数
max-height
box-sizing设置尺寸调整应用到元素盒子的哪一部分content-box,padding-box,border-box,margin-box
3.1 设置一定尺寸的盒子

两个img元素设置了相同的高度值(50%),但两个图片的高度在屏幕上看起来不一样。这是因为我使用box-sizing属性改变了其中一个元素应用尺寸属性的区域。

默认情况下,宽度和高度是需要计算的,之后才能应用到元素的内容盒。这里说的是如果你设置了元素的高度属性是100px,那么屏幕上的真实高度就是100px,这也算上了顶边和底边的内边距、边框和外边距的值。box-sizing属性允许你指定尺寸样式应用到元素盒子的具体区域,也就是说你不需要自己计算某些值了。

#first {
    box-sizing:border-box;
    width: 50%;
}
#second {
    box-sizing: content-box;
}
3.2 设置最小和最大尺寸

可以使用最小和最大相关属性为浏览器调整元素尺寸设置一定的限制。这让浏览器对于如何应用尺寸调整属性有了一定的自主权。

box-sizing: border-box;
min-width: 100px;
max-width: 200px;
4、处理溢出内容

如果你尝试改变元素的尺寸,很快就会到达某一个点:内容太大,已经无法完全显示在元素的内容盒中。这时的默认处理方式是内容溢出,并继续显示。

我们可以使用overflow属性改变这种行为。

属性说明
overflow-x设置水平方法和垂直方向的溢出方式
overflow-y
overflow简写属性overflow-x,overflow-y

溢出属性的值:

说明
auto浏览器自行处理溢出内容。通常,如果内容被剪掉就显示滚动条,否则就不显示(这是相较scroll值来说的,设置该值后,无论内容是否溢出都有滚动条)
hidden多余的部分直接剪掉,只显示内容盒里面的内容。如果用户想看看剪掉的这部分内容,对不起,做不到
no-content如果内容无法全部显示,就直接移除。主流浏览器都不支持这个值
no-display如果内容无法全部显示,就隐藏所有内容。主流浏览器都不支持这个值
scroll为了让用户看到所有内容,浏览器会添加滚动机制。通常是滚动条,不过这个值跟具体的平台和浏览器相关。即使内容没有溢出也能看到滚动条
visible默认值,不管是否溢出内容盒,都显示元素内容
overflow:hidden;
5、控制元素的可见性

使用visibility属性控制元素的可见性。虽然这种做法有点奇怪,不过这个属性跟JavaScript一起使用能创建一些比较复杂的效果。

visibility属性的值:

说明
coolapse元素不可见,且在页面布局中不占据空间
hidden元素不可见,但在页面布局中占据空间
visible默认值,元素在页面上可见
6、设置元素的盒类型

display属性提供了一种改变元素盒类型的方式,这相应会改变元素在页面上的布局方式。

display属性值:

说明
inline盒子显示为文本行中的字
block盒子显示为段落
inline-block盒子显示为文本行
list-item盒子显示为列表项,通常具有项目符号或者其他标记符(如索引号)
run-in盒子类型取决于周围的元素
compact盒子的类型为块或者标记盒(跟list-item类型产生的类似)。主流浏览器都不支持这个值
flexbox这个值跟弹性盒布局相关
table这些值跟表格中的元素布局相关
inline-table
table-row-group
table-header-group
table-row
table-column-group
table-column
table-cell
table-caption
ruby这些值跟带ruby注释的文本布局相关
ruby-base
ruby-text
ruby-base-group
ruby-text-group
none元素不可见,且在页面布局中不占空间
6.1、块级元素

独占一行,可指定宽度高度

display: block;
6.2 行内元素

不独占一行,不可指定宽度高度,都有内容决定

display:inline;
6.3 行内块元素

不独占一行,可指定宽度高度

display: inline-block;
6.4 插入元素

run-in值的盒子类型取决于周围的元素。

(1)如果插人元素包含一个display属性值为block的元素,那么插入元素就是块级元素。

(2)如果插人元素的相邻兄弟元素是块级元素,那么插入元素就是兄弟元素中的第一个行内元素。

(3)其他情况下,插人元素均作为块级元素对待。

6.5 隐藏元素

display设置为none就是告诉浏览器不要为元素创建任何类型的盒子。

7、创建浮动盒

可以使用float属性创建浮动盒,浮动盒会将元素的左边界或者右边界移动到包含块或另一个浮动盒的边界。

float值:

说明
left移动元素,使其左边界挨着包含块的左边界,或者另一个浮动元素的右边界
right移动元素,使其右边界挨着包含块的右边界,或者另一个浮动元素的左边界
none元素位置固定
7.1 阻止浮动元素堆叠

如果设置了多个浮动元素,默认情况下,它们会一个挨着一个地堆叠在一起。使用clear属性可以阻止出现这种情况。clear属性可以指定浮动元素的一个边界或者两个边界不能挨着另一个浮动元素。

说明
left元素的左边界不能挨着另一个浮动元素
right元素的右边界不能挨着另一个浮动元素
both元素的左右边界都不能挨着浮动元素
none元素的左右边界都可以挨着浮动元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值