CSS2基础笔记(6) ---- CSS盒子模型2

本文详细介绍了CSS中的盒子模型,包括盒子的内边距(padding)、边框(border)和外边距(margin),并讨论了margin塌陷和合并问题,以及如何处理内容溢出、隐藏元素的方法、样式的继承和布局策略。此外,还提到了元素间的空白处理和行内块的幽灵空白解决方案。
摘要由CSDN通过智能技术生成

一、CSS盒子模型1

8、盒子内边距(padding)

CSS属性名功能属性值
padding-top上内边距长度
padding-right右内边距长度
padding-bottom下内边距长度
padding-left左内边距长度
padding复合属性长度,可以设置 1 ~ 4 个值

padding复合属性的使用规则:

	1.padding: 10px; 四个方向内边距都是10px。
	2.padding: 10px 20px; 上10px ,左右20px。(上下、左右)
	3.padding: 10px 20px 30px; 上10px,左右20px,下30px。(上、左右、下)
	4.padding: 10px 20px 30px 40px; 上10px ,右20px,下30px,左40px。(上、右、下、左)

注意点:

	1.padding的值不能为负数。
	2.行内元素的左右内边距是没问题的,上下内边距不能完美的设置。
	3.块级元素、行内块元素,四个方向内边距都可以完美设置。

9、盒子边框(border)

CSS属性名功能属性值
border-style边框线风格
复合了四个方向的边框风格
none:默认值
solid:实线
dashed:虚线
dotted:点线
double:双实线
border-width边框线宽度
复合了四个方向的边框宽度
长度,默认3px
border-color边框线颜色
复合了四个方向的边框颜色
颜色,默认黑色
border复合属性值没有顺序和数量要求
border-left
border-left-style
border-left-width
border-left-color

border-right
border-right-style
border-right-width
border-right-color

border-top
border-top-style
border-top-width
border-top-color

border-bottom
border-bottom-style
border-bottom-width
border-bottom-color
分别设置各个方向的边框值没有顺序和数量要求

10、盒子外边距(margin)

10.1盒子外边距

CSS属性名功能属性值
margin-left左外边框CSS中的长度值
margin-right右外边框CSS中的长度值
margin-top上外边框CSS中的长度值
margin-bottom下外边框CSS中的长度值
margin复合属性,可以写1~4个值CSS中的长度值

10.2margin塌陷问题

  • 什么是margin塌陷

    第一个子元素的上margin会作用在父元素上,最后一个子元素的下margin会作用在父元素上。

  • 如何解决margin塌陷?

    方案1:给父元素设置不为0的padding 。
    方案2:给父元素设置宽度不为0的border 。
    方案3:给父元素设置css样式overflow:hidden
    

10.3margin合并问题

  • 什么是margin合并

    上面兄弟元素的下外边距和下面兄弟元素的上外边距会合并,取一个最大的值,而不是相加。

  • 如何解决margin合并?

    无需解决,布局的时候上下的兄弟元素,只给一个设置上下外边距就可以了。

11、处理内容溢出

CSS属性名功能属性值
overflow溢出内容的处理方式visible:显示,默认值
hidden:隐藏
scroll:显示滚动条,不论内容是否溢出
auto:自动显示滚动条,内容不溢出不显示
overflow-x水平方向溢出内容的处理方式visible:显示,默认值
hidden:隐藏
scroll:显示滚动条,不论内容是否溢出
auto:自动显示滚动条,内容不溢出不显示
overflow-y垂直方向溢出内容给的处理方式visible:显示,默认值
hidden:隐藏
scroll:显示滚动条,不论内容是否溢出
auto:自动显示滚动条,内容不溢出不显示

注意:

overflow-x、 overflow-y不能一个是hidden,一个是visible。
overflow常用的值是hidden和auto,除了能处理溢出的显示方式,还可以解决很多疑难杂症。

12、隐藏元素的方式

  • 方式1:visibility属性

    visibility属性默认值是show,如果设置为hidden,元素会隐藏。
    元素看不见了,还占有原来的位置(元素的大小依然保持)。

  • 方式2:display属性

    设置display:none,就可以让元素隐藏。
    彻底地隐藏,不但看不见,也不占用任何位置,没有大小宽高。

13、样式的继承

有些样式会继承,元素如果本身设置了某个样式,就使用本身设置的样式;但如果本身没有设置某个样式,会从父元素开始一级一级继承(优先继承离得近的祖先元素)。

  • 会继承的CSS属性

     字体属性、文本属性(除了vertical-align)、文字颜色等。
    
  • 不会继承的CSS属性

     边框、背景、内边距、外边距、宽高、溢出方式等。
    

14、默认样式

  • 元素一般默认的样式,例如:

     1.<a>元素:下划线、字体颜色、鼠标小手。
     2.<h1> ~ <h6>元素: 文字加粗、文字大小、上下外边距。
     3.<p>元素:上下外边距
     4.<ul>、ol 元素:左内边距
     5.body 元素:8px 外边距(4个方向)
    

15、布局小技巧

  1. 行内元素、行内块元素,可以被父元素当做文本处理。

    可以像处理文本对齐一样,去处理:行内、行内块在父元素中的对齐。
    例如:text-alignline-heighttext-indent等。

  2. 如何让子元素,在父元素中水平居中。

    • 若子元素为块元素,给父元素加上:margin:0 auto; 。
    • 若子元素为行内元素、行内块元素,给父元素加上:text-align:center 。
  3. 如何让子元素,在父元素中垂直居中。

    • 若子元素为块元素,给子元素加上:margin-top,值为:(父元素content-子元素盒子总高)/2。
    • 若子元素为行内元素、行内块元素,让父元素的height = line-height,每个子元素都加上:vertical-align:middle; 。

16、元素之间的空白问题

  • 产生的原因:

    行内元素、行内块元素,彼此之间的换行会被浏览器解析为一个空白字符。

  • 解决方案:

    1.方案1:去掉换行和空格(不推荐)。
    2.方案2:给父元素设置font-size:0,再给需要显示文字的元素,单独设置字体大小(推荐)。

17、行内块的幽灵空白问题

  • 产生的原因:

    行内块元素与文本的基线对齐,而文本的基线与文本最底端之间是有一定距离的。

  • 解决方案:

    1.方案1:给行行内块设置vertical,值不为baseline即可,设置为middel、bottom、top均可。
    2.方案2:若父元素中只有一张图片,设置图片为display:block
    3.方案3:给父元素设置font-size:0。如果该行内块内部还有文本,则需单独设置font-size

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sangyu421

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值