1.CSS3
◆浏览器支持程度差,需要添加私有前缀,移动端支持优于pc端,因为移动端的浏览器都是最新版本的,css3也在不断改进中,应用的相对广泛。
◆实际工作中写网页要使用渐进增强原则:低版本的浏览器可以正常访问页面,高版本的浏览器访问页面用户体验更好。
◆实际工作中要考虑用户群体,遵照产品的方案,听技术的上司(最新的技术大多意味着兼容性不是很好)的安排。
2.css2中的选择器◆div {} 标签选择器
◆类名选择器
.box {}
◆id选择器
#box {}
◆后代选择器
div p {}
◆交集选择器
div.box {}
◆并集选择器
div,p,span {}
◆子代选择器
div>p {}
◆通配符选择器
* {}
◆后一个兄弟选择器(紧跟div的p)
div+p {}
◆后同辈选择器
div~p {}
3.css3中的属性选择器
◆
div[class] {}
表示选中页面带有class属性的div
◆
div[class="box"] {}
表示选中页面带有class属性并且属性值等于box的div
◆
div[class^="bo"] {}
表示选中页面带有class属性并且属性值以bo字符串开头的div
◆
div[class$="ox"] {}
表示选中页面带有class属性并且属性值以ox字符串结尾的div
◆
div[class*="o"] {}
表示选中页面带有class属性并且属性值必须包含o字符串的div
◆
div[class~='box'] {}
表示选中页面带有class属性并且属性值中必须包含一个box字符串的div并且要以box字符串开头,可以是独立的属性值,也可以不是完整的一条字符串,但是必须分割符号是空格。
◆
div[class|='box'] {}
表示选中页面带有class属性并且属性值中必须包含一个box字符串并且要以box字符串开头,可以是独立的属性值,也可以不是一条完整的字符串,但是分割符号是-号。
◆金色:#daa520;4.css2中的伪类(状态伪类选择器)
◆鼠标移入时
div:hover {}
◆正常状态下(一般用于超链接)
div:link {}
◆鼠标点击时
div:active {}
◆鼠标点击后 (一般用于超链接)
div:visited {}
◆
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css2中的状态伪类选择器</title>
<style>
/*
div:link : 元素处于链接状态时 (一般用于超链接)
div:hover: 鼠标移入到元素上方时
div:active:元素被激活时 也就是被点击的时候
div:visited:元素被访问之后 也就是被点击完毕后 (一般用于超链接)
*/
div {
width: 200px;
height: 200px;
border: 5px solid #000;
/*background-color: #f00a;*/
}
div:link {
background-color: #f00a;
}
div:hover {
background-color: #0f0a;
}
div:active {
background-color: #00fa;
}
div:visited {
background-color: #ff0a;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
5.css3中的伪类-结构伪类选择器
◆选中父元素中所有的li中的第一个li
li:first-child {}
◆选中父元素中所有的li中的最后一个li
li:last-child {}
◆选中父元素中所有li中的第10个li
li:nth-child(10) {}
◆选中父元素中所有li中的奇数项(非索引)的li
li:nth-child(odd) {}
◆选中父元素中所有li中的偶数项(非索引)的li
li:nth-child(even) {}
◆选中父元素中所有li中的所有的li(n从0开始,但是当n<1的时候无效,因为没有当前项为0的元素)
li:nth-child(n) {}
◆选中父元素中所有li中当前项(非索引)为2的倍数的li
li:nth-child(2n) {}
◆选中父元素中所有li中当前项(非索引)为2的倍数+1的li
li:nth-child(2n+1) {}
◆选中父元素中所有li中前五项的li(n从0开始,但是当n<1的时候无效,因为没有当前项为0的元素),因为当n为5时结果就小于1了,所以选中的就是-0+5、-1+5、-2+5、-3+5、-4+5这些结果的当前项的li,切记不能写成5-n,因为语法上是这样规定的
li:nth-child(-n+5) {}
◆选中父元素中所有li中当前项为7的倍数的li
li:nth-child(7n) {}
◆选中父元素中所有li中当前项为7的倍数-1(并不6的倍数哦,如果是6的倍数则为6n而不是7n-1)的li
li:nth-child(7n-1) {}
◆选中父元素中所有li中的最后一个li,因为nth-last-child与nth-child正好相反,nth-last-child是从后往前选,nth-child是从前往后选。
li:nth-last-child(1) {}
◆选中父元素中所有li中最后五项的li,原理和上面的差不多,但是一个是从前往后,一个是从后往前,切记不能写成5-n,因为语法上是这样规定的
li:nth-last-child(-n+5) {}
★使用结构伪类选择器的问题在于,它是针对父容器中子元素的实际位置(该子元素在该父容器中所有子元素中排第几,也就是第几项),如果该父容器中的子元素的实际位置上不是你指定的元素标签,那么就找不到,结构伪类选择器是根据父元素中子元素的实际位置来找指定元素的,如果该位置上不是该标签,那么就找不到,这个问题往往很容易出错,所以计算该元素的位置时要特别准确。
★
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3结构伪类选择器</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
list-style: none;
}
li {
width: 50px;
height: 50px;
border: 1px solid #f00a;
margin: 5px auto;
font:15px/50px "micorsoft yehei";
text-align: center;
/*background-color: ;*/
}
/* 结构伪类选择器 */
/*父容器中第一个子元素为li的标签*/
li:first-child {
background-color: #f00a;
}
/*父容器中最后一个子元素为li的标签*/
li:last-child {
background-color: #0f0a;
}
/*父容器中第二个子元素为li的标签*/
li:nth-child(2) {
background-color: #00fa;
}
/*父容器中第三个子元素为li的标签*/
li:nth-child(3) {
background-color: #00fa;
}
/*父容器中倒数第二个子元素为li的标签*/
li:nth-last-child(2) {
background-color: #0f0;
}
/*父容器中倒数第三个子元素为li的标签*/
li:nth-last-child(3) {
background-color: #0f0;
}
/*父容器中项数为偶数项的li的标签*/
li:nth-child(even) {
background-color: #000a;
}
/*父容器中项数位为奇数项的li的标签*/
li:nth-child(odd) {
background-color: #0f0a;
}
/*父容器中项数位为2的倍数的项的li标签*/
li:nth-child(2n) {
background-color: #f00;
}
/*父容器中项数位为(2n-1)的倍数的项的li标签*/
li:nth-child(2n-1) {
background-color: #0f0;
}
/*父容器中项数位前五的项的li标签*/
li:nth-child(-n+5) {
background-color: #a05a;
}
/*父容器中项数位为最后五个的项的li标签*/
li:nth-last-child(-n+5) {
background-color: #50aa;
}
/*
使用结构伪类选择器的问题在于,
它是针对父容器中子元素的实际位置,
如果该父容器中的子元素的实际位置上不是你指定的元素标签,
那么就找不到,
结构伪类选择器是根据父元素中子元素的位置来找指定元素的。
*/
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
</ul>
</body>
</html>
6.css3中的伪类-新增状态伪类选择器
◆
div:empty {}
选中内容为空的div,连空字符都没有的div,表示内容为空的状态下的div,属于空伪类
◆
h2:target {}
选中当前被激活的一个锚点(点击锚点链接后跳转到指定位置的那个id选择器的元素),表示在被激活状态下的锚点h2标签,属于目标伪类。
◆
div:not(.box2) {}
选中div中不是类名为box2的所有元素,属于排除伪类。
★css3中新增的状态伪类选择器(empty与not)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3中新增的状态伪类选择器(empty与not)</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
li {
width: 50px;
height: 50px;
border: 1px solid #f00a;
margin: 5px auto;
font:15px/50px "micorsoft yehei";
text-align: center;
}
/*当li中的内容为空的时候*/
li:empty {
background-color: #f00a;
}
/*当li中没有类选择器为box的时候*/
li:not(.box) {
background-color: #0f0a;
}
</style>
</head>
<body>
<ul>
<li class="box"></li>
<li class="box">2</li>
<li class="box3">3</li>
<li class="box1">4</li>
<li class="box"></li>
</ul>
</body>
</html>
★css3中新增的状态伪类选择器(target)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3中新增的状态伪类选择器(target)</title>
<style type="text/css">
.nav{
position: fixed;
left:0;
top:100px;
}
.content{
width: 800px;
margin: 0 auto;
}
/*表示被激活锚点的指定元素*/
h2:target {
font-family: "microsoft yahei";
color:#f00a;
}
</style>
</head>
<body>
<ul class="nav">
<li><a href="#title1">CSS (层叠样式表)</a></li>
<li><a href="#title2">实例</a></li>
<li><a href="#title3">发展历史</a></li>
<li><a href="#title4">发展历史</a></li>
<li><a href="#title5">布局特点</a></li>
<li><a href="#title6">创建编辑</a></li>
</ul>
<div class="content">
<h2 id="title1">CSS (层叠样式表)</h2>
<p>层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。</p>
<p>CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。</p>
<h2 id="title2">实例</h2>
<p>如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器。[1] d 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。以下的样式规则应用于元素属性 id="para1":</p>
<p>class 选择器用于描述一组元素的样式,class选择器有别于id选择器,class可以在多个元素中使用。class 选择器在HTML中以class属性表示, 在 CSS 中,类选择器以一个点"."号显示:在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。</p>
<h2 id="title3">发展历史</h2>
<p>作为一项W3C推荐,CSS1发布于 1996年12月17 日。1999 年1月11日,此推荐被重新修订。</p>
<p>作为一项 W3C 推荐,CSS2发布于 1999年1月11日。CSS2添加了对媒介(打印机和听觉设备)和可下载字体的支持。</p>
<h2 id="title4">使用方法</h2>
<p>有三种方法可以在站点网页上使用样式表:外联式Linking(也叫外部样式):将网页链接到外部样式表。嵌入式Embedding(也叫内页样式):在网页上创建嵌入的样式表。内联式Inline(也叫行内样式):应用内嵌样式到各个网页元素。其中,优先级:内联式 > 嵌入式 > 外联式</p>
<p>当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,你就可以通过更改一个文件来改变整个站点的外观。</p>
<p>当特殊的样式需要应用到个别元素时,就可以使用内联样式。 使用内联样式的方法是在相关的标签中使用样式属性。样式属性可以包含任何 CSS 属性。以下实例显示出如何改变段落的颜色和左外边距。</p>
<h2 id="title5">布局特点</h2>
<p>对于蜘蛛在爬行一个网站的页面时,若是有太多的垃圾代码,会使搜索蜘蛛对其产生不友好、不信任感,同时蜘蛛的爬行速度也会因此而减缓,对于网站SEO而言,可谓一大忌。就如传统的用table页面,对此我们就需要对网站进行代码优化,而这便需要动用CSS+div了,下面便来谈谈使用CSS+div进行代码优化的一些益处。</p>
<p>网站使用DIV+CSS布局使代码很是精简,相信大多朋友也都略有所闻,css文件可以在网站的任意一个页面进行调用,而若是使用table表格修改部分页面却是显得很麻烦。要是一个门户网站的话,需手动改很多页面,而且看着那些表格也会感觉很乱也很浪费时间,但是使用css+div布局只需修改css文件中的一个代码即可。</p>
<p>采用div-css布局的网站对于搜索引擎很是友好,因此其避免了Table嵌套层次过多而无法被搜索引擎抓取的问题,而且简洁、结构化的代码更加有利于突出重点和适合搜索引擎抓取。</p>
<h2 id="title6">创建编辑</h2>
<p>创建和编辑css更加常用的是AdobeDreamweaver系列软件,可视化编辑更利于web工程师快速的创建和编辑css,新版本CS5.0、CS5.5、CS6.0、CC,包含Adobe BrowserLab,用于针对多种浏览器测试css的兼容性。Adobe Dreamweaver是一个css创建和编辑必不可少的利器!</p>
<p>FrontPage2000 包含有能用来为站点创建外部样式表的模板。可以用空白模板或已包含样式的模板来创建(例如 Arcs)。当保存样式表时, FrontPage 会以 . css 作为文件扩展名。要编辑样式表,请双击文件夹列表中的样式表。</p>
</div>
</body>
</html>
7.css3中的伪元素
◆伪元素在css2中是没有的概念,之前都是用:,在css3中有了这个概念,为了和伪类区分开来,使用::,并且必须要有content属性,由哪个元素产生的伪元素,那个伪元素就属于这个元素的一部分,并且伪元素在该元素的内部。
◆
span::before {content:"前"}
表示在span内部最前面添加一个伪元素,内容为字符串 前。
◆
span::after {content:"后"}
表示在span内部最后面添加一个伪元素,内容为字符串 后。
◆
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3中的伪元素</title>
<style>
div {
width: 300px;
height: 300px;
border: 1px solid #000;
margin: 20px auto;
position: relative;
}
/*给div加一个::before伪元素*/
div::before, div::after {
content: "我是before 前伪元素";
position: absolute;
width: 100px;
height: 100px;
border: 1px solid #f00a;
background-color: #f00a;
}
div:before {
left: 0;
bottom: 10px;
}
div::after {
content: "我是after 后伪元素";
right: 0;
bottom: 10px;
}
</style>
</head>
<body>
<div>我是一个div</div>
</body>
</html>
8.css3中的伪元素选择器
◆
li::first-letter {}
表示选中li中的第一个字母或者汉字
◆
div::first-line {}
表示选中div中的第一行信息(会随着div的变宽变窄而选中的信息增多或减少)
◆
p::selection {}
表示选中 你使用鼠标选中的信息的区域(可以改变你使用鼠标按下之后选中一片区域的样式,很神奇)
◆
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3伪元素选择器</title>
<style>
ul {
width: 250px;
}
li::first-letter {
font-size:50px;
color:rgba(255,0,0,180)
}
li::first-line {
background-color: #ccc;
}
li::selection {
color:#ffff;
background-color: #000f;
}
</style>
</head>
<body>
<ul>
<li>
As long as the effort of deep strokes fell great oaks.
As long as the effort of deep strokes fell great oaks.
</li>
<li>
只要功夫深,铁杵磨成针.只要功夫深,铁杵磨成针.
</li>
<li>
深いストロークの努力が大きな樫の落ちた限り.
深いストロークの努力が大きな樫の落ちた限り.
</li>
</ul>
</body>
</html>
9.使用css3来DIY:文言文首字下沉、简单日历
◆文言文首字下沉
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用css3选择器制作文言文首字下沉.html</title>
<style>
body, ul, dl, dt, dd {
margin: 0;
padding: 0;
}
body {
font-family: '微软雅黑';
background-color: #F7F7F7;
color: #666;
}
.content {
width: 960px;
margin: 0 auto;
font-size: 20px;
}
p {
text-indent: 40px;
line-height: 1.5;
}
p:first-child {
text-indent: 0;
}
/*这篇文言文的首字下沉*/
p:first-child::first-letter {
float: left;
background-color: #0f09;
color:#f00f;
font-size:50px;
font-family: "microsoft yahei";
}
p:last-child::first-line {
background-color: #f00b;
color:#0f0b;
}
p:nth-child(2)::selection {
background-color: #00fb;
color: #f00b;
}
</style>
</head>
<body>
<div class="content">
<p>
豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。物华天宝,龙光射牛斗之墟;人杰地灵,徐孺下陈蕃之榻。雄州雾列,俊采星驰。台隍枕夷夏之交,宾主尽东南之美。都督阎公之雅望,棨戟遥临;宇文新州之懿范,襜帷暂驻。十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,躬逢胜饯。(豫章故郡
一作:南昌故郡)
</p>
<p>
豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。物华天宝,龙光射牛斗之墟;人杰地灵,徐孺下陈蕃之榻。雄州雾列,俊采星驰。台隍枕夷夏之交,宾主尽东南之美。都督阎公之雅望,棨戟遥临;宇文新州之懿范,襜帷暂驻。十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,躬逢胜饯。(豫章故郡
一作:南昌故郡)</p>
<p>披绣闼,俯雕甍,山原旷其盈视,川泽纡其骇瞩。闾阎扑地,钟鸣鼎食之家;舸舰迷津,青雀黄龙之舳。云销雨霁,彩彻区明。落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨,雁阵惊寒,声断衡阳之浦。(轴 通:舳;迷津
一作:弥津;云销雨霁,彩彻区明 一作:虹销雨霁,彩彻云衢)</p>
<p>
遥襟甫畅,逸兴遄飞。爽籁发而清风生,纤歌凝而白云遏。睢园绿竹,气凌彭泽之樽;邺水朱华,光照临川之笔。四美具,二难并。穷睇眄于中天,极娱游于暇日。天高地迥,觉宇宙之无穷;兴尽悲来,识盈虚之有数。望长安于日下,目吴会于云间。地势极而南溟深,天柱高而北辰远。关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。怀帝阍而不见,奉宣室以何年?(遥襟甫畅
一作:遥吟俯畅)</p>
</div>
</body>
</html>
◆简单日历
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>使用css3选择器制作简单效果日历</title>
<style>
body, ul, dl, dt, dd {
margin: 0;
padding: 0;
}
body {
background-color: #F7F7F7;
}
ul {
list-style: none;
}
.calendar {
width: 385px;
height: 312px;
padding: 48px 141px 10px 12px;
margin: 100px auto;
background: url(data:image/jpeg;base64,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) 0 0 no-repeat;
}
.calendar dt, .calendar dd {
overflow: hidden;
}
.calendar span {
display: block;
width: 48px;
height: 48px;
text-align: center;
margin-right: 1px;
border: 3px solid transparent;
float: left;
}
.calendar dt {
border-top: 1px solid #5CADFF;
}
.calendar dt span {
height: 28px;
line-height: 34px;
font-size: 14px;
}
.calendar dd {
border-top: 1px solid #c8cacc;
cursor: pointer;
}
.calendar span > b,
.calendar span > b {
display: block;
line-height: 1;
}
.calendar span > b {
height: 26px;
line-height: 30px;
font-size: 18px;
font-family: Arial;
font-weight: normal;
}
.calendar span > i {
color: #999;
font-size: 12px;
font-style: normal;
}
.calendar dl dd span:hover {
/*金麒麟*/
border-color: #daa520;
}
/*最后两项的span*/
span:nth-last-child(-n+2),
span:nth-last-child(-n+2) b,
span:nth-last-child(-n+2) i {
color: #f00b;
font-weight:700;
}
/*第一个dd 在父容器dl中的元素项是2 元素项为1的是dt*/
dd:nth-child(2)>span:nth-child(1)>b,
dd:nth-child(2)>span:nth-child(1)>i,
dl dd:nth-last-child(1)>span:nth-last-child(-n+3)>b,
dl dd:nth-last-child(1)>span:nth-last-child(-n+3)>i{
color:#cccb;
font-weight: 400;
}
/*
使用结构伪类选择器的问题在于,
它是针对父容器中子元素的实际位置(该子元素在该父容器中所有子元素中排第几,也就是第几项),
如果该父容器中的子元素的实际位置上不是你指定的元素标签,
那么就找不到,结构伪类选择器是根据父元素中子元素的实际位置来找指定元素的,
如果该位置上不是该标签,那么就找不到,
这个问题往往很容易出错,所以计算该元素的位置时要特别准确
*/
</style>
</head>
<body>
<!-- 日历 -->
<div class="calendar">
<dl>
<dt>
<span>一</span>
<span>二</span>
<span>三</span>
<span>四</span>
<span>五</span>
<span>六</span>
<span>日</span>
</dt>
<dd>
<span data-range="prev-month">
<b>30</b>
<i>十九</i>
</span>
<span class="today">
<b>1</b>
<i>艾滋病日</i>
</span>
<span>
<b>2</b>
<i>廿一</i>
</span>
<span>
<b>3</b>
<i>廿二</i>
</span>
<span>
<b>4</b>
<i>廿三</i>
</span>
<span>
<b>5</b>
<i>廿四</i>
</span>
<span>
<b>6</b>
<i>廿五</i>
</span>
</dd>
<dd>
<span data-flag="festival">
<b>7</b>
<i>廿六</i>
</span>
<span>
<b>8</b>
<i>廿七</i>
</span>
<span>
<b>9</b>
<i>廿八</i>
</span>
<span>
<b>10</b>
<i>廿九</i>
</span>
<span>
<b>11</b>
<i>初一</i>
</span>
<span>
<b>12</b>
<i>初二</i>
</span>
<span>
<b>13</b>
<i>初三</i>
</span>
</dd>
<dd>
<span>
<b>14</b>
<i>初四</i>
</span>
<span>
<b>15</b>
<i>初五</i>
</span>
<span>
<b>16</b>
<i>初六</i>
</span>
<span>
<b>17</b>
<i>初七</i>
</span>
<span>
<b>18</b>
<i>初八</i>
</span>
<span>
<b>19</b>
<i>初九</i>
</span>
<span>
<b>20</b>
<i>初十</i></span>
</dd>
<dd>
<span>
<b>21</b>
<i>十一</i>
</span>
<span data-flag="festival">
<b>22</b>
<i>十二</i>
</span>
<span>
<b>23</b>
<i>十三</i>
</span>
<span>
<b>24</b>
<i>十四</i>
</span>
<span>
<b>25</b>
<i>十五</i>
</span>
<span>
<b>26</b>
<i>十六</i>
</span>
<span>
<b>27</b>
<i>十七</i>
</span>
</dd>
<dd>
<span>
<b>28</b>
<i>十八</i>
</span>
<span>
<b>29</b>
<i>十九</i>
</span>
<span>
<b>30</b>
<i>二十</i>
</span>
<span>
<b>31</b>
<i>廿一</i>
</span>
<span data-range="next-month">
<b>1</b>
<i>元旦</i>
</span>
<span data-range="next-month">
<b>2</b>
<i>廿三</i>
</span>
<span data-range="next-month">
<b>3</b>
<i>廿四</i>
</span>
</dd>
</dl>
</div>
</body>
</html>
10.css3中的颜色-设置透明度的五种方式
◆opacity属性只要被继承了,就无法更改,当父容器的css样式中的opacity属性值被子容器继承了就无法更改了,子容器改不了,只能改父容器。
◆完全透明的颜色:transparent
◆RGBA: red green blue(三原色) alpha (透明度)
◆HSLA(Hue Saturation Lightness Alpha):H 色调(色调取值范围0-360 0和360代表着纯红色,120代表着纯绿色,240代表着纯蓝色) S 饱和度(饱和度越大颜色越鲜艳,饱和度月小颜色越低沉 取值范围0%-100%) L 亮度(亮度越大越接近白色,亮度越小越接近黑色 0%-100%) A透明度 (取值范围0-1)
◆十六进制设置法:如#ffff ,第一个f表示红色、第二个f表示绿、第三个f表示蓝色、第四个f表示透明度,但是ie浏览器的兼容性是0。
★css3中的透明度设置的五种方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3中的透明度设置的五种方式</title>
<style>
.father1 {
width: 200px;
height: 200px;
border: 1px solid #000;
margin:10px auto;
opacity: 0.5;
}
.son1 {
width: 50px;
height: 50px;
background-color: #f0fb;
}
.father2 {
width: 200px;
height: 200px;
border: 1px solid #000;
margin:10px auto;
background-color: transparent;
}
.son2 {
width: 50px;
height: 50px;
background-color: #f0fb;
}
.father3 {
width: 200px;
height: 200px;
border: 1px solid #000;
margin:10px auto;
background-color:rgba(255,255,0,0.5);
}
.son3 {
width: 50px;
height: 50px;
background-color: #f0fb;
}
.father4 {
width: 200px;
height: 200px;
border: 1px solid #000;
margin:10px auto;
background-color: hsla(240,80%,50%,0.5);
}
.son4 {
width: 50px;
height: 50px;
background-color: #f0fb;
}
.father5 {
width: 200px;
height: 200px;
border: 1px solid #000;
margin:10px auto;
background-color: #f00b;
}
.son5 {
width: 50px;
height: 50px;
background-color: #f0fb;
}
/*
◆opacity属性只要被继承了,就无法更改,当父容器的css样式中的
opacity属性值被子容器继承了就无法更改了,子容器改不了,只能
改父容器。
◆完全透明的颜色:transparent
◆RGBA: red green blue(三原色) alpha (透明度)
◆HSLA(Hue Saturation Lightness Alpha):H 色调(色调取值
范围0-360 0和360代表着纯红色,120代表着纯绿色,240代表着纯
蓝色) S 饱和度(饱和度越大颜色越鲜艳,饱和度月小颜色越低沉
取值范围0%-100%) L 亮度(亮度越大越接近白色,亮度越小越接
近黑色 0%-100%) A透明度 (取值范围0-1)
◆十六进制设置法:如#ffff ,第一个f表示红色、第二个f表示绿、第
三个f表示蓝色、第四个f表示透明度,但是ie浏览器的兼容性是0。
*/
</style>
</head>
<body>
<div class="father1">
<div class="son1"></div>
使用opacity属性设置透明度
</div>
<div class="father2">
<div class="son2"></div>
使用属性值 transprent设置透明背景
</div>
<div class="father3">
<div class="son3"></div>
使用rgba 设置背景
</div>
<div class="father4">
<div class="son4"></div>
使用hsla 设置背景
</div>
<div class="father5">
<div class="son5"></div>
使用#ffff 四位十六进制设置背景 IE兼容性为0
</div>
</body>
</html>
11.css3 文本阴影 text-shadow:5px 5px 5px #f00;
◆文本阴影的x轴的水平位移
◆文本阴影的y轴的水平位移
◆文本阴影的模糊半径
◆文本阴影的颜色
★一个文本可以有多个阴影,使用逗号的方式将一个文本的多个阴影隔开,也就是多个阴影效果并列书写,如text-shadow:-1px -1px 5px #f00,1px 1px 5px #0f0;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3文本阴影(text-shadow)</title>
<style>
div {
width: 800px;
margin:200px auto;
text-align: center;
font-size:120px;
text-shadow:20px 20px 10px #f00b;
}
</style>
</head>
<body>
<div>总有刁民想你</div>
</body>
</html>
12.css3使用文本阴影制作凹凸效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3使用文本阴影制作凹凸效果</title>
<style>
body {
background-color: #666;
}
p {
font-size: 120px;
text-align: center;
font-weight: bold;
font-family: "Microsoft Yahei";
color: #666;
}
.ao {
text-shadow: -1px -1px 1px #000, 1px 1px 1px #fff;
}
.tu {
text-shadow: -1px -1px 1px #fff, 1px 1px 1px #000;
}
p {
/*box-shadow: 5px 5px 50px 50px #000;*/
}
</style>
</head>
<body>
<p class="ao">半江瑟瑟半江红。</p>
<p class="tu">半江瑟瑟半江红。</p>
</body>
</html>
13.css3盒子的box-sizing属性
◆content-box:内容盒子 (传统盒子模型,盒子大小=定义的宽高+padding+border)
◆padding-box:内填充盒子 (其实没有这个属性,这个只是定义上的概念)
◆border-box:边框盒子 (非传统盒子模型,盒子大小=数值最大的那个值)
◆当box-sizing属性的值设置为content-box(默认值)时,就是盒子的外加模式,这个时候盒子大小=定义的宽高+padding+border。
◆当box-sizing属性的值设置为border-box时,就是盒子的外减模式,这个时候盒子大小就等于真正定义的宽高的数值,这个时候定义的宽高会减小,边框和填充补上减小部分的自定义的宽高。◆可以通过box-sizing属性的border-box和content-box制作瞬间放大或者缩小效果的动画。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3的盒子模型-制作图片放大缩小效果</title>
<style>
*{
margin: 0;
padding: 0;
list-style:none;
}
ul{
width: 1100px;
margin:100px auto;
}
li{
float: left;
margin-right:20px;
}
li img{
width: 316px;
height:170px;
/*当盒子模型变为border—box时 就会进行内减模式 盒子会变小*/
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
border:20px solid transparent;
}
li img:hover {
/*当盒子模型变为content-box时 就会进行外增模式 盒子会变大*/
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
border:0 none;
}
/*
content-box:内容盒子 (传统盒子模型,盒子大小=定义的宽高+padding+border)
border-box:边框盒子 (非传统盒子模型,盒子大小=数值最大的那个值)
可以通过box-sizing属性的border-box和content-box制作瞬间放大或者缩小效果的动画
当box-sizing属性的值设置为content-box(默认值)时,
就是盒子的外加模式,
这个时候盒子大小=定义的宽高+padding+border
当box-sizing属性的值设置为border-box时,就是盒子的外减模式,
这个时候盒子大小就等于真正定义的宽高的数值,这个时候定义的宽高会减小,
边框和填充补上减小部分的自定义的宽高。
*/
</style>
</head>
<body>
<ul>
<li><img src="https://img-blog.csdnimg.cn/2022010703334954011.jpeg" alt=""/></li>
<li><img src="https://img-blog.csdnimg.cn/2022010703334925515.jpeg" alt=""/></li>
<li><img src="https://img-blog.csdnimg.cn/2022010703334961041.jpeg" alt=""/></li>
</ul>
</body>
</html>
14..css3之浏览器兼容性解决办法-私有化前缀
◆-webkit- :解决谷歌与苹果浏览器内核渲染的兼容性问题
◆-moz-:解决火狐浏览器内核渲染的兼容性问题
◆-ms-:解决微软浏览器内核渲染的兼容性问题
◆-o-:解决欧朋浏览器内核渲染的兼容性问题
◆什么都不加:默认的书写方式
★如果加私有化前缀也无法解决兼容性的问题,那么就是浏览器的版本实在太低了,几乎可以放弃了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css3中兼容不同浏览器方式-私有前缀</title>
<style>
.box {
width: 1000px;
height: 200px;
margin:100px auto;
border: 1px solid #000;
}
/*
css3之浏览器兼容性解决办法-私有化前缀
◆-webkit- :解决谷歌与苹果浏览器内核渲染的兼容性问题
◆-moz-:解决火狐浏览器内核渲染的兼容性问题
◆-ms-:解决微软浏览器内核渲染的兼容性问题
◆-o-:解决欧朋浏览器内核渲染的兼容性问题
◆什么都不加:默认的书写方式
★如果加私有化前缀也无法解决兼容性的问题,那么就是浏览器的版
本实在太低了,几乎可以放弃了。
*/
.box {
background-image:-webkit-linear-gradient(to left,#f00b,#00fb);
background-image:-moz-linear-gradient(to left,#f00b,#00fb);
background-image:-ms-linear-gradient(to left,#f00b,#00fb);
background-image:-o-linear-gradient(to left,#f00b,#00fb);
background-image:linear-gradient(to left,#f00b,#00fb);
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>