CSS(二)、盒模型

第二章:盒模型:

2.1、标准盒子模型:content+padding+border+margin

  • 1、盒模型:

  • content:内容

  • border:边框(设置边框的宽窄、样式和颜色)

  • padding:内边距(设置盒子内容区与边框的间距)

  • margin:外边距(设置盒子与相邻元素的间距)

  • 规则:

  • 2、外边距叠加:box垂直方向上的外边距会叠加:上下格子的外边距相遇时,它们会相互叠加,直至一个外边距碰到另一个元素的边框。(叠加的只是垂直外边距,水平外边距不叠加)

  • 3、盒子width:

    • 没有宽度(就是没有涉及width)的元素始终会扩展到填满其父元素的宽度位置。添加水平边框、内边距和外边距,会导致内容宽度减少,减少量等于水平边框、内边距和外边距和
    • 为设定了宽度的盒子添加边框、内边距和外边距,会导致盒子扩展得更宽。实际上,盒子的width属性只是内容区的宽度,而非盒子要占据的水平宽度

  • 4、float浮动:主要为实现文本绕排图片的效果

    • 文本绕排图片:当浮动一张图片或者其他元素时,你是在要求浏览器往它上方推,直到它碰到父元素的内边界。后面的段落不再认为浮动元素在文档流中位于它的前面,因而它会占据父元素左上角的位置。不过,它的内容(文本)会绕开浮动的图片
    • 创建分栏:再给img设置float后,再给段落设定宽度,然后再flaot它,便可创建多栏(浮动图片的固定段落一经浮动,就会变成布局中的一栏,其分本也不会再绕排图片)
  • 5、促使父元素围住浮动元素的三种方法

    • 为父元素添加overflow:hidden,强制父元素包含浮动元素
    • 浮动父元素
    • 给父元素的最后添加一个非浮动的子元素,然后清除该子元素
<html>
    <head>
        <title></title>
        <style>
            section {border:1px solid blue;} 
            img {float:left;} 
            .clear_me {clear:left;} 
            footer {border:1px solid red;}
        </style>
    </head>
    <body>
        <section> 
            <img src="images/rubber_duck.jpg"> 
            <p>It's fun to float.</p> 
            <!--最后添加的非浮动子元素-->
            <div class="clear_me"></div> 
        </section> 
        <footer> Here is the footer element…</footer> 
    </body>
</html>

  • 定位(position):

  • 6、静态定位:在静态定位的情况下,每个元素在处在常规文档流中。它们都是块级元素,所以就会在页面中自上而下地堆叠起来

  • 7、相对定位(relative):相当的是它原来在文档流中的位置(或者默认位置),接下来可以使用top、right、bottom和left属性来改变它的位置

  • 8、绝对定位(absolute):绝对定位跟静态定位和相对定位比,很不一样。因为绝对定位的元素完全脱离了常规文档流,它现在是相对于顶级元素body元素在定位

    • 由于绝对定位元素的定位上下文是body,所以在页面滚动的时候,为了维护与body元素的相对位置关系,它也会相应地移动
  • 9、固定定位(fixed):固定定位的定位上下文是视口(浏览窗口或手持设备的屏幕),因此它不会随页面滚动而移动

  • 只有将元素的position属性设置为relative、absolute或fixed,这个元素的top、right、bottom和left属性才会起作用

  • 显示属性(display):

  • 10、块级元素和行内元素

    • 块级元素:比如段落、标题、列表等,在浏览器中上下堆叠显示
    • 行内元素:比如a、span和img,在浏览器中左右并排显示,只有前一行没有空间时才会显示到下一行
    • 将块级元素(block)和行内元素(inline)互换
/*默认为 block*/ 
p {display:inline;} 
/*默认为 inline*/ 
a {display:block;} 
  • 11、display属性的none值:把元素的display设定为none,该元素以及所有包含在其中的元素,都不会在页面中显示,它们原先占据的所有空间都会被“回收”

  • 12、visibility属性:这个属性最常用的两个相对的值是visible和hidden,把该属性设置为hidden时,元素会隐藏,但它站占据的页面空间仍“虚位以待”

  • 背景(background)

  • 13、一些背景属性:

  • background-color

  • background-image:默认情况下,背景图片会以元素左上角为起点,沿水平和垂直方向上重复出现,最终填满整个背景区域

  • background-repeat:

    • 默认值是repeat,效果是水平和垂直方向上都重复;
    • repeat-x:只在水平方向上重复;
    • repeat-y:只在垂直方向上重复;
    • no-repeat:不重复
    • round:为确保图片不被剪切,通过调整图片大小来适应背景区域
    • space:为确保图片不被剪切,通过在图片间添加空白来适应背景区域
  • background-position:该属性有五个关键值:top、left、bottom、right和center。这些关键值中的任意两个组合起来都可以作为该属性的值

  • background-size:

    • 50%:缩放图片,使其填充背景区的一半。
    • 100px 50px:把图片调整到 100 像素宽,50 像素高。
    • cover:拉大图片,使其完全填满背景区;保持宽高比。
    • contain:缩放图片,使其恰好适合背景区;保持宽高比。
  • background-attachment(背景粘附):控制滚动元素内的背景图片是否随元素滚动而滚动

    • scroll:默认值,即背景图片随元素移动
    • fixed:背景图片不会随着元素移动而移动(常用于给body元素中心位置添加淡色水印,让水印不会随页面滚动而移动)

  • 14、css3新增背景属性

    • background-clip:控制背景绘制区域的范围,比如可以让背景颜色和背景图片只出现在内容区,而不出现在内边距区域。默认情况下,背景绘制区域是扩展到边框外边界的
    • background-origin:控制背景定位区域的原点
    • background-break:控制分离元素(比如跨越多行的行内盒子)的显示效果
  • 15、背景渐变

  • 线性渐变:linear-gradient()

  • 放射性渐变:radial-gradient()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值