CSS 边框轮廓阴影_html/css_WEB-ITnose
概览
边框本应该在盒模型一文中一并介绍,只因 为避免篇幅较长特独立此文与轮廓和阴影一并介绍。
之所以将边框,轮廓和阴影一并介绍,看下图就明白了:
轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
边框 (border) 是围绕元素内容和内边距的一条或多条线。
阴影 (box-shadow)是CSS 3新增的属性,用来向元素框添加阴影。
三者可以单独存在,也可以同时存在。下面将分开对其进行简单介绍。
边框 borderHTML 元素的边框有四个,每个边框有 3 个方面:宽度、样式、以及颜色。
/* border: 宽度 样式 颜色; */border: 1px solid red;/* 等价于 */border-width: 1px;border-style: solid;border-color: red;
边框 | 上边框 | 右边框 | 下边框 | 左边框 |
---|---|---|---|---|
border | 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 |
上表对边框的属性进行了分组以方便记忆。现仅对其中一组(第一列吧)进行介绍。
宽度 width
边框的宽度有两种值可选,一种是指定长度值,比如 2px 或 0.1em,另一种是使用 3 个关键字之一,它们分别是 thin 、medium(默认值) 和 thick。
注释:CSS 没有定义 3 个关键字的具体宽度,所以一个用户代理可能把 thin 、medium 和 thick 分别设置为等于 5px、3px 和 2px,而另一个用户代理则分别设置为 3px、2px 和 1px。
p {border-style: solid; border-width: 5px;}p {border-style: solid; border-width: thick;}
由于边框有四个方位,所以border-width有四个值可填,如若部分省略,同样遵循 值复制 原则。
p {border-style: solid; border-width: 5px;} /* 等价于 5px 5px 5px 5px */p {border-style: solid; border-width: 5px 3px;} /* 等价于 5px 3px 5px 3px */p {border-style: solid; border-width: 5px 3px 2px;} /* 等价于 5px 3px 2px 3px */
其他具体方位边框宽度(border-top-width,border-left-width等)只能填一个值。
样式 style
样式是边框最重要的一个方面,因为如果没有样式,就没有边框,换句话就是说:宽度和颜色都可以没有,但不能没有样式,样式默认为 none.
CSS 中定义了十种边框样式。
值 | 描述 |
---|---|
none | 定义无边框。 |
hidden | 与 none 相同。 |
dotted | 定义点状边框。 |
dashed | 定义虚线。 |
solid | 定义实线。 |
double | 定义双线。双线的宽度等于 border-width 的值。 |
groove | 定义 3D 凹槽边框。 |
ridge | 定义 3D 垄状边框。 |
inset | 定义 3D inset 边框。 |
outset | 定义 3D outset 边框。 |
inherit | 规定应该从父元素继承边框样式。 |
还是看一下效果图吧
和宽度一样,样式也可以分别作用在四个方位,并且遵循着相同的值复制规则。
border-style: dotted solid double dashed; border-style: dotted solid double;border-style: dotted solid;border-style: dotted;
颜色 color
设置边框颜色非常简单。
可以使用任何类型的颜色值,例如可以是命名颜色(red,blue等),也可以是十六进制(#ff0000)和 RGB 值:
p { border-style: solid; border-color: blue rgb(25%,35%,45%) #909090 red;}
除了上面的三种值可选外,还有一个 transparent 透明边框可选,使用边框就是为了给元素划清界线,所以,你懂的。
另外,当我们不指定边框颜色的时候,只指定边框样式,边框也是有颜色和宽度的。它将与元素的文本颜色相同。另一方面,如果元素没有任何文本,假设它是一个表格,其中只包含图像,那么该表的边框颜色就是其父元素的文本颜色(因为 color 可以继承)。
注意:在 IE7 之前,没有提供对 transparent 的支持。在以前的版本,IE 会根据元素的 color 值来设置边框颜色。
CSS 3 中对边框进行了丰富,增加了 image 和 radius 两个属性。
图像 image
边框图像稍微有点复杂,先看一个例子来体会其简单用法:
使用的图像尺寸为: 81 x 81px
对一个 div 元素进行测试
<div class="demo"></div>
相应样式
div.demo { width:150px; height:80px; margin:50px auto; border-style:solid; border-width:20px; border-image:url('border.png') 27 fill/27px/30px repeat;}
得到下面的样式
上例我们使用了border-image简写属性,其等价于下面的拆写属性:
border-image-source: url('border.png');border-image-slice: 27 fill;border-image-width: 27px;border-image-outset: 30px;border-image-repeat: repeat;
下面将对拆分属性及其值进行概要介绍。
border-image-source
这个很好理解,用来指定使用的图像。
border-image-slice
这个属性用来控制图像的切分。给定一个边框图像都会经过四次切分,你可以形象的按下图理解其切分流程。
经过四次切分后,得到9个区域(俗称“九宫格”)
border-image-slice 属性及值就是控制切分的偏移量的,类似border-width,它也有四个方位,并且遵循 值复制 规则,不同的是:截取的尺寸不需要单位,尺寸后可以添加fill关键字。
border-image-slice: 27; /*等价于 27 27 27 27*/border-image-slice: 27 20 fill; /*等价于 27 20 27 20 fill*/border-image-slice: 27 20 22 fill; /*等价于 27 20 22 20 fill*/
关键字fill标示中间区域将出现(出现归出现,至于能否看见,要看你截取的中间区域部分是否有可见图像),如下图:
border-image-width
边框图像宽度属性用来设置边框图像的宽度,边框图像宽度和边框宽度不是一码事,但有部分关联。
如果没有边框图像宽度定义,则默认边框图像宽度等于边框宽度,如果有边框图像宽度定义,则以边框图像宽度为准。
下图为没有定义边框图像宽度的情形,边框图像宽度等于边框宽度。
下图为设置了边框图像宽度的情形:
边框图像宽度大于边框宽度,图像向边框内溢出。
边框图像宽度也类似与边框宽度的定义,也是四个方位值,也遵循值复制规则。这个需要带单位哟。
border-image-outset
此属性用来设置边框图像向边框外偏移的量。
在上面的图中我们看到图像向边框内溢出了,如果担心向内溢出遮挡内容,我们可以通过此属性让其向外溢出一定尺寸。
border-image-outset: 30px 10px;
此属性的值设置也是四个方位,同样遵循值复制规则。
border-image-repeat
此属性控制着边框图像复制延伸的方式。有三个值可选:
stretch
拉伸图像来填充区域,比较好理解。默认属性值。
repeat
平铺(重复)图像来填充区域,从中间向两边复制。
round
类似 repeat 值。如果无法完整平铺所有图像,则对图像进行缩放以适应区域。
使用 round 最明显的好处是保证截取区域的完整性,而不像 repeat 会出现一半的情况,round 可能会进行少量的缩放。
下图为 上下 round 左右 repeat 可以对比一下区别。
另外,此属性虽说也有四个方位,但最多只能设置两个值:上下一致,左右一致。
border-image-repeat: round repeat;
border-image
边框图像的简写属性,可以将上述具体属性集中到此属性中,知道其语法格式即可,上面已经有过例子了。
border-image: border-image-source border-image-slice/border-image-width/border-image-outset border-image-repeat;
圆角 radius
CSS 3 中新增了边框圆角的样式。
圆角相对比较简单,只有一个简写属性(border-radius)和四个具体方位属性,对于圆角来说,四个方位不再是上下左右了,而是:左上角(border-top-left-radius),右上角(border-top-right-radius),右下角(border-bottom-right-radius),左下角(border-bottom-left-radius)。属性值同样遵循 值复制 规则。
border-radius: 15px; /*等价于 15px 15px 15px 15px*/border-radius: 10% 10px; /*等价于 10% 10px 10% 10px*/
由于每个角都涉及两个方位(如:左上,关联 top 和 left),所以每个角可以设置两个值分别对应角上的两个方位,两个值使用 / 分隔,前面的表示上下的值,后面的表示左右的值。如果两个值相同,只写一个即可。
border-top-left-radius: 15px/15px; /*等价于 15px*/
通过下图你会对圆角有更加形象的认识。
轮廓 outlineoutline 轮廓是绘制于元素周围的线,位于边框边缘的外围,可起到突出元素的作用。
注释:轮廓线不会占据空间。
轮廓的使用同边框,但没有边框那么复杂。轮廓只有:outline(简写属性,集中样式,尺寸,颜色的设置),outline-style,outline-width,outline-color,4个属性可选,没有像边框似的对四个方位的具体设置相关的属性。
由于其使用及相应的属性值跟边框相同,故不再赘述。
阴影 box-shadowbox-shadow 阴影属性用来向框添加一个或多个阴影。
div { box-shadow: 10px 10px 5px #888888;}
语法
box-shadow: h-shadow v-shadow blur spread color inset;
box-shadow 向框添加一个或多个阴影。该属性是由逗号分隔的阴影列表,每个阴影由 2-4 个长度值、可选的颜色值以及可选的 inset 关键词来规定。省略长度的值是 0。
值 | 描述 |
---|---|
h-shadow | 必需。水平阴影的位置。允许负值。 |
v-shadow | 必需。垂直阴影的位置。允许负值。 |
blur | 可选。模糊距离。 |
spread | 可选。阴影扩散的尺寸。 |
color | 可选。阴影的颜色。 |
inset | 可选。将外部阴影 (默认为外部阴影) 改为内部阴影。 |
水平和垂直阴影位置是必选项,其值可以为负值。
画过素描的同学会很容易理解阴影(没画过的也很容易理解的)。
阴影跟光源有关,光源的位置不同,阴影也不同,光源的数量多少也决定着阴影的效果,物体的形状也影响阴影。
想象上图是一个桶,所成的阴影是我们从桶的上面去看,光线方向大致在桶的左上方所致。
代码实现为:
div { width:100px; height:100px; margin: 100px auto; background-color:#ff8888; border:1px solid #000; border-radius: 50%; box-shadow: 10px 10px 5px #888888, 10px 10px 5px #888 inset;}
边框和轮廓都是由样式,宽度和颜色进行定义,还可以给边框添加圆角,使其更加美观,阴影的使用可以使元素更加符合生活场景。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

HTML은 간단하고 배우기 쉽고 결과를 빠르게 볼 수 있기 때문에 초보자에게 적합합니다. 1) HTML의 학습 곡선은 매끄럽고 시작하기 쉽습니다. 2) 기본 태그를 마스터하여 웹 페이지를 만들기 시작하십시오. 3) 유연성이 높고 CSS 및 JavaScript와 함께 사용할 수 있습니다. 4) 풍부한 학습 리소스와 현대 도구는 학습 과정을 지원합니다.

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

HTML, CSS 및 JavaScript는 웹 개발의 세 가지 기둥입니다. 1. HTML은 웹 페이지 구조를 정의하고 등과 같은 태그를 사용합니다. 2. CSS는 색상, 글꼴 크기 등과 같은 선택기 및 속성을 사용하여 웹 페이지 스타일을 제어합니다.

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 정의하고, 2. CSS는 웹 페이지 스타일을 제어하고 3. JavaScript는 동적 동작을 추가합니다. 그들은 함께 현대 웹 사이트의 프레임 워크, 미학 및 상호 작용을 구축합니다.

HTML의 미래는 무한한 가능성으로 가득합니다. 1) 새로운 기능과 표준에는 더 많은 의미 론적 태그와 WebComponents의 인기가 포함됩니다. 2) 웹 디자인 트렌드는 반응적이고 접근 가능한 디자인을 향해 계속 발전 할 것입니다. 3) 성능 최적화는 반응 형 이미지 로딩 및 게으른로드 기술을 통해 사용자 경험을 향상시킬 것입니다.

HTML의 미래 트렌드는 의미론 및 웹 구성 요소이며 CSS의 미래 트렌드는 CSS-In-JS 및 CSShoudini이며, JavaScript의 미래 트렌드는 WebAssembly 및 서버리스입니다. 1. HTML 시맨틱은 접근성과 SEO 효과를 향상시키고 웹 구성 요소는 개발 효율성을 향상 시키지만 브라우저 호환성에주의를 기울여야합니다. 2. CSS-in-JS는 스타일 관리 유연성을 향상 시키지만 파일 크기를 증가시킬 수 있습니다. CSShoudini는 CSS 렌더링의 직접 작동을 허용합니다. 3. Webosembly는 브라우저 애플리케이션 성능을 최적화하지만 가파른 학습 곡선을 가지고 있으며 서버리스는 개발을 단순화하지만 콜드 스타트 문제의 최적화가 필요합니다.

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. HTML은 컨텐츠 구조를 담당하고 CSS는 스타일을 담당하며 JavaScript는 동적 동작을 담당합니다. 1. HTML은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의하여 의미를 보장합니다. 2. CSS는 선택기와 속성을 통해 웹 페이지 스타일을 제어하여 아름답고 읽기 쉽게 만듭니다. 3. JavaScript는 스크립트를 통해 웹 페이지 동작을 제어하여 동적 및 대화식 기능을 달성합니다.
