CSS阶段四:border,outline,padding,margin,resize

盒子模型

CSS中将每一个元素都设置为了一个矩形的盒子,是为了方便页面的布局。(一切皆为框)

基本构成:内容区,内边距,边框,外边距


布局特点

pc端:会为网页设置一个默认宽度,倾向像素单位(px)

移动端:基于视口作为网页宽度,更倾向使用相对单位(% , rem,vh, wh 等)

border

指定了四个值:四个值会分别设置给 上 右 下 左,按照顺时针的方向设置

指定三个值:三个值会分别设置给 上 左右 下

指定两个值:两个值会分别设置给 上下 左右

指定一个值:四边全都是该值

border-width

边框宽度

border-color

边框颜色,
transparent透明边框

border-style

设置边框的样式

可选值:

  • none默认值,没有边框
  • solid 实线
  • dotted 点状边框
  • dashed 虚线
  • double 双线

border

边框的简写样式,通过它可以同时设置四个边框的样式,宽度,颜色,而且没有任何的顺序要求

border-top/border-right /border-bottom /border-left

可以单独设置四个边的样式,规则和border一样,只不过它只对一个边生效

border-spacing

在table中设置单元格间距

table{
width: 500px;
margin: 0 auto;
/设置边框/
/border: 1px black solid;/

            /*
                border-spacing可以用来设置表格边框之间的距离
             * */
            /*border-spacing: 100px;*/
            
            /*
                border-collapse可以用来设置表格的边框合并
                当设置border-collapse以后border-spacing自动失效
             * */
            border-collapse: collapse;
        }

border-collapse

当设置border-collapse以后border-spacing自动失效

在table中设置单元格合并


border-image

使用图片边框,必须为元素设置边框宽度和样式

使用图片作为元素的边框。浏览器支持较好,但商业网站应用很少,主要用在个人博客中。

border-image-source

border-image-source: url("img/border.png");

border-image-slice

图像边界向内偏移

此属性指定顶部,右,底部,左边缘的图像向内偏移,分为九个区域:四个角,四边和中间。图像中间部分将被丢弃(完全透明的处理),除非填写关键字。如果省略第四个数字/百分比,它和第二个相同的。如果也省略了第三个,它和第一个是相同的。如果也省略了第二个,它和第一个是相同的。

切割图片的顺序 上,右,下,左,数字表示基于图片边框的切割位置

  • fill 默认四个角填充这个图片

  • n 设置图片切割数值,然后把切割好的图片设置给每个边角

    • 当上切割和下切割有重叠或者是错位只会显示上下边框的边框图片(左右切割线同理)

    • 当上下或者是左右切割线没有重叠或者错位是 每个边都或有图边框图片

  • 百分比

    border-image-slice: 52 26 26 26;
    border-image-slice: fill;
    border-image-slice: 26;

border-image-repeat

参数:

  • stretch默认值,四个边个图片被拉伸
  • round填满,四个边的图片重复平铺 ,确保图片完整性。
  • repeat重复,四个边的图片重复平铺

border-image-width

设置图片边框的宽度 --- 不会改变元素大小

与border-width设置效果相同,但是不会导致元素的实际大小改变。(会往里面挤内容区)
border-image-width: 20px;

border-image-outset

向元素外显示图片边框

图片外边框的位置,只能为整数,位移不会改变盒子的大小。

border-image-outset: 50px 30px;

border-image

简写

简写方式:

border-image: <border-image-source>
                ||<border-image-slice> [/<border-image-width> 
                || <border-image-repeat>]

border-radius

设置边框圆角效果。浏览器支持较好,应用非常广泛。

参数:

  • n 设置固定数值

  • 设置百分比,推荐使用,可以随着元素大小动态调整

    border-radius: 50px;
    border-radius: 50px 20px;
    border-radius: 50px 20px 5px;
    border-radius: 50px 20px 5px 80px;

    /border-radius: 水平半径 / 垂直半径/
    border-radius: 200px/100px;
    border-radius: 200px 50px/ 100px 5px;
    border-radius: 200px 50px 10px / 100px 5px 60px;

    border-radius: 50%, 如果元素是正方形,显示圆形


box-shadow

让元素显示阴影效果。应用非常广泛,主要用来呈现元素立体效果。

内阴影可以用来实现一些立体效果

参数:

  • 参数1:投影方式 。默认外阴影,inset是内阴影。

  • 参数2:X轴偏移量 ,正值,阴影在元素右侧,负值在元素左侧

  • 参数3:Y轴偏移量 ,正值,阴影在元素底部,负值在元素顶部。

  • 参数4:阴影模糊半径,可选。只能为正值,如果设置为0,阴影不具备模糊效果。

  • 参数5:阴影扩展半径。可选。如果取正值,整个阴影都延展扩大,反之取负值,则整个阴影都缩小。

  • 参数6:阴影颜色,可选

      box-shadow: inset -30px -30px 100px 0 #000;
    
      可给高度为0的盒子设置一个单纯的阴影效果。
      height: 0px;
      box-shadow: 0 0 20px 1px #333;
    

解决IE低版本兼容性问题

border-radius:圆角

box-shadow:阴影
border-image:图片边框

引入外部文件

第一步:下载PIE.js项目压缩文档

第二步:解压缩文件。把PIE引入

<!--[if lte IE 8]>
<script type="text/javascript" src="../PIE/PIE_IE678.js"></script>
<![endif]-->

<!--[if IE 9]>
<script type="text/javascript" src="../PIE/PIE_IE9.js"></script>
<![endif]-->


<style type="text/css">
    .box {

        box-shadow: 0 0 50px 0 red;
        /*引入htc文件,让IE678支持圆角特性*/
        behavior: url("plugin/PIE.htc");
    }
    
</style>

第三步:编写CSS3样式

第四步:behavior: url(path/to/pie_files/PIE.htc);

第五步:在IE下查看


outline

元素轮廓

外轮廓不会改变元素盒子大小

语法 [ <'outline-color'> || <'outline-style'> || <'outline-width'> ]

outline-color

外轮廓颜色

outline-style

外轮廓样式

可选值:

  • none 默认。定义无轮廓。
  • dotted 定义点状的轮廓。
  • dashed 定义虚线轮廓。
  • solid 定义实线轮廓。
  • double 定义双线轮廓。双线的宽度等同于 outline-width 的值。
  • groove 定义 3D 凹槽轮廓。此效果取决于 outline-color 值。
  • ridge 定义 3D 凸槽轮廓。此效果取决于 outline-color 值。
  • inset 定义 3D 凹边轮廓。此效果取决于 outline-color 值。
  • outset 定义 3D 凸边轮廓。此效果取决于 outline-color 值。
  • inherit 规定应该从父元素继承轮廓样式的设置。

outline-width

外轮廓宽度

outline-offset:

外轮廓偏移量,不会导致盒子大小改变。


resize

设置用户可调整盒子大小属性

注意事项:resize 必须搭配 overflow: auto;

可选参数:

  • none 用户不能调整元素宽高。
  • both 用户可以调整元素宽高。
  • horizontal 用户只能调整元素宽度
  • vertical 用户只能调整元素高度
  • inherit 默认继承

padding

内边距


margin

外边距

  • margin还可以设置为auto,auto一般只设置给水平方向的margin
  • 水平方向外边距如果设置为auto,则外边距设置为最大值
  • 垂直方向外边距如果设置为auto,则外边距默认就是0

垂直外边距重叠

  • 在网页中相邻的垂直方向的外边距会发生外边距的重叠
  • 所谓的外边距重叠指兄弟元素之间的相邻外边距会取最大值而不是取和
  • 如果父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素

设置负外边距

使用负外边会产生一个元素“悬浮”在另一个元素上面的效果。
注意:被覆盖的元素文本内容不会被覆盖!

使用场景:左侧自适应,右侧固定宽度布局效果为浮动元素(.box)设置右侧外边距为负右侧外边距绝对值等于紧邻兄弟元素的宽度为紧邻兄弟元素设置左浮动


计算函数

width: calc(200px - 1px);
width: calc(200px + 100px);
width: calc(200px / 2);

内联元素盒子模型

  • padding支持水平方向的内边距,垂直也支持但是垂直内边距不影响布局

  • border支持四个方向边框,但是垂直边框不影响布局

  • margin支持水平,不支持垂直放方向

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容

  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,595评论 0 6
  • CSS要点记录 CSS 指层叠样式表 (Cascading Style Sheets) 多种样式时的优先级问题 数...
    Tony__Hu阅读 1,126评论 0 0
  • 第一章 F12: element.style 内联样式(可以直接在上面写代码进行简单调试) user agent...
    fastwe阅读 1,500评论 0 0
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,314评论 0 11
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,056评论 0 1