CSS3基础

<h3>圆角效果 border-radius</h3>
** border-radius*是向元素添加圆角边框。
使用方法:
border-radius:10px; /
所有角都使用半径为10px的圆角 */

border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角、右上角、右下角和左下角,顺时针 */

不要以为border-radius的值只能用px单位,你还可以用百分比或者em,但兼容性目前还不太好。

实心半圆:
方法:把高度(height)设为宽度(width)的2倍,并且只设置左上角和右上角的半径与元素的高度一致(大于也是可以的)。

div{ height:100px;
    width:50px; 
    background:#9da;
    border-radius:50px 0 0 50px ;/*半径至少设置为width的值*/ 
}```
![](http://upload-images.jianshu.io/upload_images/2643476-688ac83d63e460a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**实心圆:**
方法:把宽度(width)与高度(height)值设置为一致(也就是正方形),并且四个圆角值都设置为它们值的一半。如下代码:

div{ height:100px;/与width设置一致/
width:100px;
background:#9da;
border-radius:50px;/四个圆角值都设置为宽度或高度值的一半/
}```


<h3>阴影 box-shadow(一)</h3>
box-shadow是向盒子添加阴影。支持添加一个或者多个。
很简单的一段代码,就实现了投影效果,酷毙了。我们来看下语法:
box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];
参数介绍:


注意:inset 可以写在参数的第一个或最后一个,其它位置是无效的。
为元素设置外阴影:
示例代码:

.box_shadow{ box-shadow:4px 2px 6px #333333; }```
效果:
[![](http://upload-images.jianshu.io/upload_images/2643476-c977945f091c7ff5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/52e21c9000013c8f01180117.jpg)
**为元素设置内阴影:**
示例代码:

.box_shadow{ box-shadow:4px 2px 6px #333333 inset; }```
效果:

添加多个阴影:
以上的语法的介绍,就这么简单,如果添加多个阴影,只需用逗号隔开即可。如:

.box_shadow{
   box-shadow:4px 2px 6px #f00,
   -4px -2px 6px #000,
   0px 0px 12px 5px #33CC00 inset;
}```
效果:
[![](http://upload-images.jianshu.io/upload_images/2643476-d396a6bded717f89.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/52e21d210001356d01170116.jpg)

----
<h3>阴影 box-shadow(二)</h3>
**1、阴影模糊半径与阴影扩展半径的区别**
阴影模糊半径:此参数可选,其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;
阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;
**2、X轴偏移量和Y轴偏移量值可以设置为负数**
box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];
X轴偏移量为负数:

.boxshadow-outset{ width:100px; height:100px; box-shadow:-4px 4px 6px #666;}```
效果图:


Y轴偏移量为负数:

.boxshadow-outset{ width:100px; height:100px; box-shadow:4px -4px 6px #666;}```
效果图:
[![](http://upload-images.jianshu.io/upload_images/2643476-cb39a5c4e2ba235b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/548fd93e00011dd101570142.jpg)

----
<h3>为边框应用图片 border-image</h3>
顾名思义就是为边框应用背景图片,它和我们常用的background属性比较相似。例如:

background:url(xx.jpg) 10px 20px no-repeat;```
但是又比背景图片复杂一些。
想象一下:一个矩形,有四个边框。如果应用了边框图片,图片该怎么分布呢? 图片会自动被切割分成四等分。用于四个边框。可以理解为它是一个切片工具,会自动把用做边框的图片切割。怎么切割呢?为了方便理解,做了一张特殊的图片,由9个矩形(7070像素)拼成的一张图(210210像素),并标注好序号,是不是像传说中的九宫图,如下:


我们把上图当作边框图片 来应用一下, 看一看是什么效果
根据border-image的语法:

#border-image{ 
    background:#F4FFFA; 
    width:210px; 
    height:210px; 
    border:70px solid #ddd;
    border-image:url(borderimg.png) 70 repeat 
}```
效果:
[![](http://upload-images.jianshu.io/upload_images/2643476-3a8c8958dc608dc4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/52e220780001091a03530354.jpg)
从序号可以看出div的四个角分别对应了背景图片的四个角。而**2,4,6,8 **被重复。**5在哪?**因为是从四周向中心切割图片的所以,5显示不出来。而在chrome浏览器中5是存在的,下图的样子:[![](http://upload-images.jianshu.io/upload_images/2643476-d2b192834b6837b1.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/52e220be0001cef603560358.jpg)**repeat**的意思就是重复,目前因为是刚好被整除,效果看不出来。如果改下DIV的宽高,再来看重复的效果:[![](http://upload-images.jianshu.io/upload_images/2643476-4bc0a9b0eba3ac46.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/52e2210700016f5603190313.jpg)
边角部分为裁掉了,可见**repeat**就是一直重复,然后超出部分剪裁掉,而且是居中开始重复。
**Round 参数**:Round可以理解为圆满的铺满。为了实现圆满所以会压缩(或拉伸);

border-image {

width:170px; 
height:170px; 
border:70px solid; 
border-image:url(borderimg.png) 70 round; 

}```
效果:


可见图片被压扁了。
Stretch 很好理解就是拉伸,有多长拉多长。有多远“滚”多远。

border-image:url(borderimg.png) 70 stretch```
看一下效果:
[![](http://upload-images.jianshu.io/upload_images/2643476-a99bd145c3de8913.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/52e2218d0001d45403530366.jpg)
2,4,6,8分别被拉伸显示。
>注意:Chrome下,中间部分也会被拉伸,webkit浏览器对于round属性和repeat属性似乎没有区分,显示效果是一样的。
>Firefox 26.0 下是可以准确区分的。

----
<h3>颜色之RGBA</h3>
RGB是一种色彩标准,是由红(R)、绿(G)、蓝(B)的变化以及相互叠加来得到各式各样的颜色。RGBA是在RGB的基础上增加了控制**alpha**透明度的参数。
语法:```color:rgba(R,G,B,A)```
以上R、G、B三个参数,正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0% - 100.0%。超出范围的数值将被截至其最接近的取值极限。并非所有浏览器都支持使用百分数值。A为透明度参数,取值在0~1之间,不可为负值。
代码示例:

background-color:rgba(100,120,60,0.5);```


<h3>渐变色彩 </h3>
CSS3 Gradient 分为线性渐变(linear)径向渐变(radial)。由于不同的渲染引擎实现渐变的语法不同,这里我们只针对线性渐变的 W3C 标准语法来分析其用法,其余大家可以查阅相关资料。W3C 语法已经得到了 IE10+、Firefox19.0+、Chrome26.0+ 和 Opera12.1+等浏览器的支持。
这一小节我们来说一下线性渐变:

参数:
第一个参数:指定渐变方向,可以用“角度”的关键词或“英文”来表示:

第一个参数省略时,默认为“180deg”,等同于“to bottom”。
第二个和第三个参数,表示颜色的起始点和结束点,可以有多个颜色值。

background-image:linear-gradient(to left, red, orange,yellow,green,blue,indigo,violet);```
效果图:
![](http://upload-images.jianshu.io/upload_images/2643476-6770cc428f9fca83.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

----
<h3>text-overflow 与 word-wrap</h3>
**text-overflow**用来设置是否使用一个**省略标记**(...)标示对象内文本的溢出。
语法:
[![](http://upload-images.jianshu.io/upload_images/2643476-70620840728f88ca.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://img.mukewang.com/53070cc00001a5bc06000200.jpg)
但是**text-overflow**只是用来说明文字溢出时用什么方式显示,要实现溢出时产生**省略号**的效果,还须定义**强制文本在一行内显示**(white-space:nowrap)及**溢出内容为隐藏**(overflow:hidden),只有这样才能实现**溢出文本显示省略号**的效果,代码如下:

text-overflow:ellipsis; overflow:hidden; white-space:nowrap; ```
同时,word-wrap也可以用来设置文本行为,当前行超过指定容器的边界时是否断开转行。
语法:


normal为浏览器默认值,break-word设置在长单词URL地址内部进行换行,此属性不常用,用浏览器默认值即可。


<h3>嵌入字体@font-face</h3>
@font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体。

语法:
@font-face { font-family : 字体名称; src : 字体文件在服务器上的相对或绝对路径;}

这样设置之后,就可以像使用普通字体一样在(font-*中设置字体样式。
比如:

p { font-size :12px; font-family : "My Font"; /*必须项,设置@font-face中font-family同样的值*/}```

----
<h3>文本阴影text-shadow</h3>
text-shadow可以用来设置文本的阴影效果。
**语法:**

text-shadow: X-Offset Y-Offset blur color;```
X-Offset:表示阴影的水平偏移距离,其值为正值时阴影向右偏移,反之向左偏移;
Y-Offset:是指阴影的垂直偏移距离,如果其值是正值时,阴影向下偏移,反之向上偏移;
Blur:是指阴影的模糊程度,其值不能是负值,如果值越大,阴影越模糊,反之阴影越清晰,如果不需要阴影模糊可以将Blur值设置为0;
Color:是指阴影的颜色,其可以使用rgba色。
比如,我们可以用下面代码实现设置阴影效果。

text-shadow: 0 1px 1px #fff```

----
<h3>background-origin</h3>
设置元素背景图片的**原始起始位置**。
语法:

background-origin : border-box | padding-box | content-box;```
参数分别表示背景图片是从边框,还是内边距(默认值),或者是内容区域开始显示。
效果如下:

需要注意的是,如果背景不是no-repeat,这个属性无效,它会从边框开始显示。


<h3>background-clip</h3>
用来将背景图片做适当的裁剪以适应实际需要。
语法:

background-clip : border-box | padding-box | content-box | no-clip```
参数分别表示从**边框、**或**内填充**,或者**内容区域**向外裁剪背景。**no-clip**表示不裁切,和**参数border-box**显示同样的效果。backgroud-clip
默认值为**border-box**。
效果如下图所示:
![](http://upload-images.jianshu.io/upload_images/2643476-76241a04ba767cff.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

----
<h3>background-size</h3>
设置背景图片的大小,以**长度值**或**百分比**显示,还可以通过**cover**和**contain**来对图片进行伸缩。
语法:

background-size: auto | <长度值> | <百分比> | cover | contain```
取值说明:
1、auto:默认值,不改变背景图片的原始高度和宽度;
2、<长度值>:成对出现如200px 50px,将背景图片宽高依次设置为前面两个值,当设置一个值时,将其作为图片宽度值来等比缩放
3、<百分比>:0%~100%之间的任何值,将背景图片宽高依次设置为所在元素宽高乘以前面百分比得出的数值,当设置一个值时同上;
4、cover:顾名思义为覆盖,即将背景图片等比缩放以填满整个容器
5、contain:容纳,即将背景图片等比缩放至某一边紧贴容器边缘为止
提示:大家可以在右边的编辑窗口输入自己的代码尝试不同取值的效果。


<h3>multiple backgrounds</h3>
多重背景,也就是CSS2里background的属性外加originclipsize组成的新background的多次叠加,缩写时为用逗号隔开的每组值;用分解写法时,如果有多个背景图片,而其他属性只有一个(例如background-repeat只有一个),表明所有背景图片应用该属性值。
语法缩写如下:

background : [background-color] | [background-image] | 
              [background-position][/background-size] |
              [background-repeat] | [background-attachment] | 
              [background-clip] | [background-origin],...```
可以把上面的缩写拆解成以下形式:

background-image:url1,url2,...,urlN;
background-repeat : repeat1,repeat2,...,repeatN;
backround-position : position1,position2,...,positionN;
background-size : size1,size2,...,sizeN;
background-attachment : attachment1,attachment2,...,attachmentN;
background-clip : clip1,clip2,...,clipN;
background-origin : origin1,origin2,...,originN;background-color : color;```
注意:
用逗号隔开每组 background 的缩写值;
如果有 size 值,需要紧跟 position 并且用 "/" 隔开;
如果有多个背景图片,而其他属性只有一个(例如 background-repeat 只有一个),表明所有背景图片应用该属性值。
background-color 只能设置一个。


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

推荐阅读更多精彩内容

  • (1). 阴影模糊半径与阴影扩展半径的区别:阴影模糊半径:此参数可选,其值只能是为正值,如果其值为0时,表示阴影不...
    Leisure_blogs阅读 1,473评论 0 6
  • 1. 结构标记 定义一个区域 定义独立的内容 定义页面内容之外的内容 定义导航链...
    php_bruce阅读 579评论 0 0
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,617评论 0 7
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,303评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,730评论 0 2