前面的话
边框是CSS盒模型属性中默默无闻的一个普通属性,CSS3的到来,但得边框属性重新焕发了光彩。本文将详细介绍CSS边框
基础样式
边框是一条以空格分隔的集合样式,包括边框粗细(边框宽度)、边框颜色和边框样式,且先后顺序无关
border: border-width border-color border-style
border: 1px solid red;
【边框样式】
如果一个边框没有样式,边框将根本不会存在
关于虚线dashed,在chrome/firefox下,虚线宽高比是3/1;而在IE下,虚线宽高比为2/1。所以在IE下虚线显得比较密
关于点线dotted,在chrome下,点线是方点;而在IE/firefox下,点线是圆点
border-style:none(默认)
border-style:hidden/dotted/dashed/solid/double/groove/ridge/inset/outset(共9种)
【边框宽度】
边框的宽度不能为负,不能指定为百分比值。这是因为,边框并不会因为设备尺寸变大,所以百分比单位并不符合语义。类似地,还有outline、box-shadow、text-shadow等
边框宽度支持3个关键字:this/medium/thick,分别是1px、3px、5px,且medium为默认值。medium为3px是因为边框样式double至少为3px为有效果
border-width: thin/medium(默认)/thick/<length>
【边框颜色】
默认的边框颜色是元素本身的前景色,即元素的文本颜色;如果元素没有任何文本,则边框颜色是其父元素的文本颜色。但是,在表格中,若只设置border-style,而不设置border,则边框颜色为黑色,而不与文本颜色相同。类似地,还有text-shadow、box-shadow等
border-color: transparent/<color>
[注意]在CSS2.1中,背景定位background-position只能相对于左上角定位。如果需要是相对于右侧,则可以使用一个右侧的透明边框来实现类似的效果
<演示框>点击下列相应属性值可进行演示
边框要点
【注意事项】
边框有以下几个要点需要特别注意:
1、边框绘制在元素背景之上,如果边框样式有某种缝隙,可以通过这些缝隙看到元素的背景(有兼容问题)
2、同一元素的边框相交处是斜线,可以用边框实现三角形
3、行内元素的上下边框由于不影响行高,不影响布局;左右边框会影响布局
4、在CSS2.1中,背景定位background-position只能相对于左上角定位。如果需要是相对于右侧,则可以使用一个右侧的透明边框来实现类似的效果
【边框单边】
border-top/border-right/border-bottom/border-left
【边框属性】
border-width:
border-top-width border-right-width
border-bottom-width border-left-width
border-style:
border-top-style border-right-style
border-bottom-style border-left-style
border-color:
border-top-color border-right-color
border-bottom-color border-left-color
【四值顺序】
border-width: 1px 2px 3px 4px;//上右下左
border-width: 1px 2px 3px;//上(左右)下
border-width: 1px 2px;//(上下)(左右)
border-width: 1px;//(上下左右)
多色边框
多色边框border-colors可以在一条边框上设置多种颜色
[注意]只有firefox支持,需要加-moz-前缀,且只能四条边分开写,否则无效
border-colors:<color><color>……
border: 10px solid black;
-moz-border-top-colors: red green;
-moz-border-right-colors: green yellow;
-moz-border-bottom-colors: yellow blue;
-moz-border-left-colors: blue red;
圆角边框
圆角边框border-radius可以为边框设置圆角(IE8-不支持),四值顺序是左上、右上、右下、左下
border-radius: none(默认)
border-radius: <length>{1,4}[/<length>{1,4}]?
//如果反斜杠存在,前面的值是水平方向的半径,后面的值是垂直方向的半径。如果没有则水平和垂直方向相等
关于圆角边框有如下注意事项:
1、<length>
可以是具体值,也可以是百分比,但不是负数
2、重置border-radius没有圆角,使用none无效,需要取值0
3、border-radius对<img>
没有任何效果
4、如果取值为百分比,水平方向圆角百分比相对于宽度,垂直方向圆角百分比相对于高度
【圆角单角】
border-top-left-radius/border-top-right-radius/border-bottom-right-radius/border-bottom-left-radius
border-top-left-radius: 10px 20px;
[注意]写圆角单角时不可加/
【四值顺序】
四值顺序是左上、右上、右下、左下
border-radius: 10px 20px 30px 40px / 20px 30px 40px 50px;
【内径外径】
border-radius内径 = 外径 - 对应的边框宽度
当border-radius半径值小于等于边框宽度时,元素没有内径效果
【特殊图形】
圆形
元素的宽高相同,且圆角半径为宽高的一半
div{
width: 100px;
height: 100px;
border-radius: 50%;
}
半圆
元素宽高不同,且圆角半径与宽高要配合
div{
width: 100px;
height: 50px;
border-radius: 50px 50px 0 0;
}
扇形
元素宽高及一个圆角半径相同
div{
width: 50px;
height: 50px;
border-radius: 50px 0 0 0;
}
椭圆
元素宽高不同,且水平和垂直半径分别对应宽高
div{
width: 120px;
height: 80px;
border-radius: 120px/80px;
}
盒子阴影
盒子阴影box-shadow可以为元素设置阴影(IE8-不支持)
box-shadow: none(默认)
box-shadow: (h-shadow v-shadow blur spread color inset)+;
h-shadow: 水平阴影位置(必须)
v-shadow: 垂直阴影位置(必须)
blur: 模糊距离(可选)
spread: 阴影尺寸(可选)
color: 阴影颜色,默认和文本颜色一致(可选)
inset: 内部阴影(可选)
box-shadow:10px 10px red,20px 20px blue;
使用盒子阴影box-shadow时,有如下几点注意事项:
1、可以使用多重阴影,但使用过多会造成性能差
2、边框在内阴影之上,内阴影在背景图片之上,背景图片在背景色之上,背景色在外阴影之上
3、内阴影对<img>
元素没有任何效果
4、最先写的阴影在最顶层
5、该属性与border-radius一脉相承,若通过border-radius设置为圆角,则box-shadow的最终呈现也将是圆角
【模拟边框】
box-shadow: 0 0 0 10px blue;
<演示框>点击下列相应属性值可进行演示
【单侧投影】
box-shadow: 0 5px 4px -4px black;
【邻边投影】
box-shadow: 3px 3px 6px -3px black;
【双侧投影】
box-shadow: 5px 0 5px -5px black,-5px 0 5px -5px black;
图片边框
图片边框border-image可以在边框位置设置图片(IE10-不支持)
border-image: none(默认)
border-image: border-image-source || border-image-slice [ / border-image-width? | / border-image-outset ]? || border-image-repeat;
[注意]该属性的作用是用来替代border-style的,若border-image为none,则显示border-style的值
border-image: url('img.img') 27 fill / 27 / 27px repeat;
【border-image-source】
边框的图片路径
border-image-source:url('test.img');
【border-image-slice】
图片边框四条切割线的位置
border-image-slice: <number> | <percentage> fill
使用border-image-slice时,有如下几点注意事项:
1、若不写单位,具体值默认单位是px
2、fill表示图片边框的中间部分将保留下来
3、四值方向是上右下左,代表切割线的方向,切割的分别是高宽高宽
4、图片边框是在边框范围内显示的,若边框宽度不等于slice切片值,则图片边框会按比例放大缩小,以使图片边框正好显示在边框范围内
5、若slice值为负,或大于盒子的宽度或高度会被100%,四个角将显示整个背景图片
6、若右切和左切大于盒子宽度,则上中和下中部分为空;若上切和下切大于盒子高度,则左中和右中部分为空
【border-image-width】
边框宽度border-image-width。若指定该值,则边框图片宽度由该值确定,否则由盒子的边框宽度来确定。该值可以用具体像素、数字(表示几倍)以及百分比来表示,遵循四值顺序
border-image-width: <length> | <percentage> | <number> | auto
【border-image-outset】
border-image-outset表示边框图像区域超出边框的量,可以用具体像素和数字(表示几倍)表示,遵循四值顺序
border-image-outset:0(默认)
border-image-outset: <length> | <number>
【border-image-repeat】
边框图片的排列方式
border-image-repeat: stretch(拉伸,默认) | repeat(重复) | round(平铺) [1,2]
//第一个值表示水平方向的排列方式,第二个值表示垂直方向的排列方式
在上面的属性值中,repeat是边框中间向两端平铺,可能造成两端边缘被切的现象;而round会对边框背景图的切片进行缩放,使其正好显示
【按钮实现】
div{
display: inline-block;
border-image: url('button.png') 16 fill/ auto / 5px;
}
应用
【三道杠效果】
三道杠可以使用边框来实现,上面两道杠使用上边框的double样式,下面一道杠使用下边框的solid样式
<style>
.box{
color: red;
width: 60px;
height: 10px;
border-top: 30px double;
border-bottom: 10px solid;
transition: color 0.5s;
}
.box:hover{
color:pink;
}
</style>
<div class="box"></div>
【十字效果】
<style>
.box{
position: relative;
color: blue;
border: 4px solid;
width: 40px;
height: 40px;
transition: color 0.2s;
}
.box:before{
content:"";
border-top:10px solid;
display: block;
position: absolute;
width: 30px;
top:15px;
left:5px;
}
.box:after{
content:"";
position: absolute;
top: 5px;
left: 15px;
border-left:10px solid;
height: 30px;
}
.box:hover{
color: lightblue;
}
</style>
<div class="box"></div>
【信封效果】
可以使用图片边框border-image来实现航空信封的效果。图片边框使用线性渐变来实现
<style>
.box {
width: 200px;
height: 100px;
padding: 10px;
border: 10px solid;
border-image: repeating-linear-gradient(-225deg, red 0, red 10px, transparent 10px, transparent 20px, #58a 20px, #58a 30px, transparent 30px, transparent 40px) 20;
}
</style>
<div class="box" contenteditable ="true">请修改文字</div>
理解CSS边框border的更多相关文章
-
CSS 边框(border)实例
CSS 边框(border)实例:元素的边框 (border) 是围绕元素内容和内边距的一条或多条线. CSS border 属性允许你规定元素边框的样式.宽度和颜色. CSS 边框属性属性 描述bo ...
-
css盒子模型、边框border、外边距margin、填充padding、轮廓outline
盒子模型:盒子默认的宽度为容器的宽度,也可以自省设定宽度,高度根据内容适应,也可以自行设定高度.min-height设定最小高度 一个盒子包括外边距.边框.内边距和实际内容 Margin(外边距):清 ...
-
W3School-CSS 边框(border)实例
CSS 边框(border)实例 CSS 实例 CSS 背景实例 CSS 文本实例 CSS 字体(font)实例 CSS 边框(border)实例 CSS 外边距 (margin) 实例 CSS 内边 ...
-
前端 CSS 盒子模型 边框 border属性
边框 border:边框的意思,描述盒子的边框 边框有三个要素: 粗细 线性样式 颜色 border: solid border特性 如果颜色不写,默认是黑色.如果粗细不写,不显示边框.如果只写线性样 ...
-
理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
-
深入理解CSS中的层叠上下文和层叠顺序(转)
by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道 ...
-
深入理解css中的margin属性
深入理解css中的margin属性 之前我一直认为margin属性是一个非常简单的属性,但是最近做项目时遇到了一些问题,才发现margin属性还是有一些“坑”的,下面我会介绍margin的基本知识以及 ...
-
深入理解CSS中的层叠上下文和层叠顺序
零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在C ...
-
理解CSS居中
我想很多在前端学习或者开发过程中,肯定会遇到如何让你的元素居中的问题,网上google肯定会有很多的解决方法.今天我就个人的项目与学习经验谈谈个人理解css如何让元素居中. 要理解css的居中,首先必 ...
随机推荐
-
Win 10 连接公司VPN后不能上Internet外网
当前用户配置 %AppData%\Microsoft\Network\Connections\Pbk 与所有用户共享配置 %ProgramData%\Microsoft\Network\Connect ...
-
Mac 下显示隐藏文件
将下面的命令粘贴进终端,按提示操作即可(可能需要输入电脑密码) 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:d ...
-
iOS页面间传值的方式 (Delegate/NSNotification/Block/NSUserDefault/单例)
iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例) iOS页面间传值的方式(NSUserDefault/Delegate/NSN ...
-
在使用supervisord 管理tomcat时遇到的小问题
使用 supervisord 监控管理的进程必须以 nodaemon 启动,而 tomcat 的 startup.sh 脚本是daemon方式的,假设不做改动的话,supervisord 会一直报错 ...
-
Linux注意到Makefile
规则: 目标 : 依靠 命令 make是怎样工作的: (1)make在当前文件夹下寻找makefile或Makefile. (2)假设找到,他会寻找文件里的第一个目标文件(target).并把这个文件 ...
-
Struts2下载
package com.tcf.action; import java.io.BufferedInputStream; import java.io.FileInputStream; import j ...
- springMVC入门思路整理
-
在Brackets中使用Emmet
当在Brackets中安装上Emmet插件后,就可以使用Emmet的语法来加速前端编写. 有关html ● 子关系> div>ul>li ● 相邻+ div+p+bq ● 上一级^ ...
-
让apache支持htaccess文件
第一:检测 apache是否开启mod_rewrite 通过php提供的phpinfo()函数查看环境配置,在"apache2handler -> Loaded Modules&quo ...
-
POJ 1742 Coins(多重背包, 单调队列)
Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar. ...