Css的前世今生
CSS常用标签
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
HTML的用法没有什么技巧,就是死记硬背,当然你不需要都记下来,能记住20个常用的标签基本上就OK了,其他不常用的标签百度一下也能找到相应的答案,HTML这是一个文本,如果想要改变其的输出内容,需要在重新修改HTML文件,这时候很多程序员就不乐意了,后来又有了Css,这个Css可以对HTML进行修饰操作。接下来,让我们一起来看看Css的强大之处吧。
一.什么是CSS
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com '''
一.什么是Css:
1>.层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
2>.CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。
3>.CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。 二.Css的特点:
1>.丰富的样式定义
CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。
2>.易于使用和修改
CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。另外,可以将相同样式的元素进行归类,
使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,我们只需要在样式列表中找到相应的样式声明进行修改。
3>.多页面应用
CSS样式表可以单独存放在一个CSS文件中,这样我们就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。
4>.层叠
简单的说,层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中。这些后来定义的样式将对前面的
样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。
5>.页面压缩
在使用HTML定义页面效果的网站中,往往需要大量或重复的表格和font元素形成各种规格的文字样式,这样做的后果就是会产生大量的HTML标签,从而使页面文件的大小增加。而将样式的声明单独放到CSS样式表中,可以大大的减小页面的体积,这样在加载页面时使用的时间也会
大大的减少。另外,CSS样式表的复用更大程序的缩减了页面的体积,减少下载的时间。[ 三.关于选择器的优先级:
1.不同类型的选择器比较:
A>.ID选择器优先级最高;
B>.属性选择器其次;
C>.类选择器;
D>.标签选择器优先级最低;
2.同种类型的选择器比较:
A>.相同选择器,就近原则,即往下优先级的代码优先级越高;
B>.关键字!important;优先级最高!尽管是ID选择器也干不过!important;这个参数。 感兴趣的小伙伴可以参考:https://baike.baidu.com/item/CSS/5457?fr=aladdin
'''
二.CSS直接选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style> /*这是定义样式的标签,也就是css专用的,当然细心的小伙伴会发现,我们的注释方式会换掉的,跟golang注释有点像了。*/ a { /*这是标签选择器,表示匹配所有的a标签,并将里面的内容定义为红色(red)*/
color: red;
}
#baidu{ /*定义一个ID选择器,匹配到相应的ID进行以下的操作*/
color: yellow;
} .yzj{ /*class选择器,表示找到class="yzj"的标签,匹配到该标签后,他们的颜色为红色*/
color: skyblue !important; /*关键字:“!important”表示优先级最高,同类的选择器越往下匹配的优先级越高,
但是如果你在最上面用关键字声明(!important)那就不管下面的同类在处理相同的标签定义了什么属性,这个优先级是最高的。*/
} .jie{ /*class选择器,表示找到class="jie"的标签,匹配到该标签后,他们的为绿色*/
color: green;
} [n="100"]{ /*属性选择器,表示找到标签中自定义的属性是n="100"的标签,然后将其颜色变成紫色(英文:rebeccapurple)*/
color:fuchsia;
} input[type="text"]{ /*定义一个属性选择器,表示找到type="text"的input标签。*/
color:rebeccapurple;
} /*
关于选择器的优先级:
一.不同类型的选择器比较:
1>.ID选择器优先级最高;
2>.属性选择器其次;
3>.类选择器;
4>.标签选择器优先级最低;
二.同种类型的选择器比较:
1.相同选择器,就近原则,即往下优先级的代码优先级越高;
2.关键字!important;优先级最高!尽管是ID选择器也干不过!important;这个参数。
*/ </style>
</head>
<body>
<div>尹正杰</div>
<img src="尹正杰.jpg">
<div>
<p id="baidu">百度</p>
<p class="yzj">谷歌</p>
<p class="yzj jie">阿里云<a>万网</a></p>
</div>
<a>中国检验检疫科学研究院</a>
<p n="100">睿智融科</p> <input type="text" />
<input type="text" />
<input type="password" />
</body>
</html>
三.CSS间接选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style> /*Css专用标签*/ /*div p{ !*层级选择器,递归查找,会匹配在div标签中所有的p标签。*!*/
/*color:green;*/
/*}*/ /*div >p{ !*也是一种层级选择器,只是和上面的那种方式相比,不去递归查找。即在div标签中的子标签查找p标签,换句话说就是只查看div标签的儿子类型标签,不会查找其孙子的标签!*!*/
/*color:darkgoldenrod;*/
/*}*/ /*.yzj >p span{ !*首先手匹配class为yzj的标签,之后在这个标签中找到p的子标签,最后在这个p标签再去找span标签,匹配成功就会去对字体进行染色哟。*!*/
/*color:slateblue;*/
/*}*/ .yzj,.jie{ /*定义一个组合选择器,可以把多个选择器合并成一个,前提是他们的属性相同的前提下再用哟,这样就可以避免写2个不同名称的而属性相同的选择器啦.*/
color:red;
} .jie:hover{ /*定义一个伪类选择器,当你把鼠标放在被匹配的标签后,Css就会生效,我们可以让字体颜色变色*/
color:deepskyblue;
} /*以上举例只是商用的几种选择器,更多Css选择器请参考:http://www.w3school.com.cn/cssref/css_selectors.asp*/ </style>
</head>
<body>
<div>尹正杰</div>
<img src="D:\Python_projects\python_file\python3\Css\尹正杰.jpg">
<div class="yzj">
<p id="baidu">百度
<span>66666666666</span>
</p>
<p><span>啦啦啦~</span></p> <p class="yzj">谷歌</p> <p class="jie">阿里云
<a>万网</a>
</p> <span >啦啦啦~</span> <a>
<p>yinzhengjie
<span>哈哈~</span>
</p>
</a> </div>
<a>中国检验检疫科学研究院</a>
<p n="100">睿智融科</p> <input type="text" />
<input type="text" />
<input type="password" />
<div class="yzj">AAAAAAAAAAAAAA</div>
<a class="jie">BBBBBBBBBBBBBBB</a> </body>
</html>
四.样式设计
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style> /*.jky{*/
/*color: #B22222; !*定义字体颜色,关于颜色这里推荐用RGB的方式定义,更多请参考:http://tool.oschina.net/commons?type=3*!*/
/*background-color:#00FF00;!*定义字体背景颜色,如果和其他选择器有冲突,您非要让背景颜色为爱选择器优先级最高可以在green后面用!important参数!*!*/
/*}*/
.yzj{
font-size:30px;/*调整字体大小*/
/*background-color:#FF1493; !*把字体背景颜色调成粉色,其优先级会高于上面的选择器,除非上面用了!important;这个参数*!*/
/*height:200px;!*定义高度为200像素*/
/*height:20%; !*定义高度为其父级标签的20%,要注意的是,如果其没有父级抱歉,默认不能用百分百的形式来定义高度,需要你手动指定像素。*/
/*width:400px;!*定义宽度为400像素*/
/*width:40%; !*定义宽度为其父级标签的40%*/
background-image:url(尹正杰.jpg);/*定义页面的背景图片,需要传入一张图片的路径*/
background-repeat:no-repeat;/*定义网页背景图是否重复,no-repeat表示不重复,repeat-x表示在x轴上重复,repeat-y表示在y轴上重复。*/
height:1000px;/*定义网页背景图的高度位500像素*/
width:1000px;
} .jie{ /*将一张图片的任何一个图标显示出来,前提是你自己制定像素的大小,用着大小来展示你想要从一张图片得到的图标。*/
background-image:url(尹正杰.jpg);
background-repeat:no-repeat;
background-position-y:-111px; /*注意,这行参数是调试图片的y轴移动,下面哪行是控制x轴移动的*/
background-position-x:-106px;
/*以上四局可以浓缩成一句:background:url(尹正杰.jpg) no-repeat -111px -106px*/
height:50px;
width:50px;
}
</style>
</head>
<body>
<div class="yzj">尹正杰</div>
<div style="width:500px;background-color:brown;height:500px;"> <!--定义改行的宽度为500像素,即宽度用“width”关键字表示,背景颜色和高度用“background-color”,“height”表示。-->
<div class="jie">中国检验检检疫科学研究院</div>
</div> <div class="jie">111111</div> </body>
</html>
五.css文件引用方式
/*.jky{*/
/*color: #B22222; !*定义字体颜色,关于颜色这里推荐用RGB的方式定义,更多请参考:http://tool.oschina.net/commons?type=3*!*/
/*background-color:#00FF00;!*定义字体背景颜色,如果和其他选择器有冲突,您非要让背景颜色为爱选择器优先级最高可以在green后面用!important参数!*!*/
/*}*/
.yzj{
font-size:30px;/*调整字体大小*/
/*background-color:#FF1493; !*把字体背景颜色调成粉色,其优先级会高于上面的选择器,除非上面用了!important;这个参数*!*/
/*height:200px;!*定义高度为200像素*/
/*height:20%; !*定义高度为其父级标签的20%,要注意的是,如果其没有父级抱歉,默认不能用百分百的形式来定义高度,需要你手动指定像素。*/
/*width:400px;!*定义宽度为400像素*/
/*width:40%; !*定义宽度为其父级标签的40%*/
background-image:url(尹正杰.jpg);/*定义页面的背景图片,需要传入一张图片的路径*/
background-repeat:no-repeat;/*定义网页背景图是否重复,no-repeat表示不重复,repeat-x表示在x轴上重复,repeat-y表示在y轴上重复。*/
height:1000px;/*定义网页背景图的高度位500像素*/
width:1000px;
} .jie{ /*将一张图片的任何一个图标显示出来,前提是你自己制定像素的大小,用着大小来展示你想要从一张图片得到的图标。*/
background-image:url(尹正杰.jpg);
background-repeat:no-repeat;
background-position-y:-111px; /*注意,这行参数是调试图片的y轴移动,下面哪行是控制x轴移动的*/
background-position-x:-106px;
/*以上四局可以浓缩成一句:background:url(尹正杰.jpg) no-repeat -111px -106px*/
height:50px;
width:50px;
}
commons.css配置文件戳我
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style>
.yzj{
color:red; font-size:30px;
}
</style> <link rel="stylesheet" href="commons.css" /> <!--会加载"commons.css"配置文件的样式-->
</head>
<body>
<div style="color:red; font-size:30px;"></div>
<div style="color:red; font-size:30px;"></div>
<div style="color:red; font-size:30px;"></div>
<div style="color:red; font-size:30px;"></div>
<div class="yzj">尹正杰</div> <!--表示直接引用"yzj"的属性,其效果等于上面四行的每一行的内容,我们不需要像上面那样,每次写的时候都要手动写一遍其
属性,上面四个都是一样的属性,我们只需要把class标签改成yzj就好啦!当然也有优先级之分,上面手写的优先级是高于class="yzj"的优先级的!-->
<div class="jie">yinzhengjie</div> <!--我们虽然看不到jie这个样式,但是有一个link标签,它回去读取commons.css文件的内容,里面有jie的内容。
推荐工作中用这种形式,这样大家在别的HTML文件也可以调用该文件中的样式啦-->
</body>
</html>
六.display用法
1.display=none的用法展示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title> <style>
.yzj{
color: red;
font-size:30px;
}
.hide{
display:none;/*定义一个隐藏标签,让display等于none会将隐藏数据,可以是图片,文字,或是弹出的登录框等等。
当然这个display的值不仅仅可以等于none,还可以等于block,inline,inline-block等*/
}
</style>
</head>
<body>
<input type="button" value="现身吧!" onclick="showDiv();"> <!--定义一个input标签,让type="button"中的,button按钮
和"showDiv();"函数相绑定,下面的原理是一样的-->
<input type="button" value="隐身吧!" onclick="hideDiv();">
<div id="100" class="yzj hide">我有一只小毛驴从来也不骑,突然一天心血来潮骑他它去赶集......</div>
<script> <!--这是一个javascript脚本,实现的功能我已经做了注释-->
function showDiv() {
document.getElementById(100).classList.remove('hide');/*让display的值不为none,就无法隐藏数据了,数据就会原形毕露啦!*/
}
function hideDiv(){
document.getElementById(100).classList.add('hide'); /*原理同上,这里只是又把hide属性加上啦,即又让display的值等于none啦,这样数据的内容又会被隐藏掉啦!*/
}
</script>
</body>
</html>
2.dispaly扩展
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
</head>
<body> <div class="yzj">11111111</div> <!--定义一个块级标签,自己单独占有一行-->
<div class="yzj">22222222</div>
<a>AAAAAAA</a> <!--定义一个内联标签,该标签接着上个标签的位置显示数据,而不是换行显示数据。-->
<a>bbbbbbbb</a>
<div style="display:inline">1111111</div> <!--给div标签添加一个属性:style="display:inline"就会让这个块级标签转换成内联标签-->
<div style="display:inline">2222222</div>
<a style="display:block">3333333</a> <!--给a标签添加一个style="display:block"属性,就会让这个内联标签变身成为块级标签。-->
<a style="display:block">4444444</a>
<a style="background-color:rebeccapurple;height:200px;width:400px;display:inline-block;">我有一只小毛驴 我从来也不骑。。。。</a> <!--注意,内联标签
设置高度和宽度的像素都是不生效的!这2个参数默认情况下只对块级标签生效。如果你硬是想要这内连标签让这些参数对其生效的话,只需要将display的值改成inline-block即可!-->
</body>
</html>
七.边框和边距
1.边框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style>
.yzj{
background-color: #dddddd;
padding: 10px;
border-left: 3px solid transparent; /*设置颜色为透明色,并制定边框的位置为左侧。*/
} .yzj:hover{
border-left: 3px solid rebeccapurple;
}
</style>
</head>
<body> <div style="height: 200px;border: 1px solid red;"></div> <!--如果不制定方向,表示上下左右都会有边框出现-->
<div style="background-color: #dddddd;border-left: 3px solid rebeccapurple;padding: 10px">尹正杰</div> <!--这种方式是给左侧加标签!-->
<br/>
<div class="yzj">
尹正杰笔记
</div>
</body>
</html>
2.边距
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
</head>
<body>
<div style="margin-left:500px;background-color:chartreuse;color:white;"> <!--定义一个外边距,表示将一行的顶格数据整体往右空出500像素,可以用浏览器看看效果就好啦!-->
外边距-left
</div> <div style="padding-left:500px;background-color:rebeccapurple;color:white;"> <!--定义一个内边距,表示将一行的内容(数据)往右空出500像素-->
内边距-left
</div> <div style="margin:500px;background-color:chartreuse;color:white;">
外边距四周
</div> <div style="padding-left:500px;background-color:rebeccapurple;color:white;">
内边距四周
</div>
</body>
</html>
八.位置(回到顶部案例)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style>
.FixedImmobility{
position:fixed; /*position的值为fixed表示永久固定,也就是说匹配到该选择器的标签其内容是固定在页面的某个角落不动的!*/
bottom:300px; /*表示距离底部(bottom)的距离是300像素,当然你可以把bottom参数改成top那就宝石距离顶部的距离是300像素!*/
right:0; /*表示匹配的标签在页面的右侧*/
} .RollingContent{
position:relative;/*单独使用relative其实是没有作用的,这个属性你写或不写都是无所谓的,对页面的效果是无所谓的,它的用法一般是和absolute标签配合用,
也就是说当一个子标签的position属性是absolute时,absolute标签会往其父级往上递归查找含有relative的标签,找到后,absolute标签根据relative标签的规格将
内容输入到指定位置,但是如果找到最外层还是没有找到relative标签,那么含有absolute属性的标签就会将内容直接按照原来的规则输出到浏览器屏幕上!*/
height:300px;
width:300px;
background-color:rebeccapurple;
} .yzj{
position:absolute; /*position的值为absolute表示初次固定,也就是说匹配到该选择器的标签其内容是会随着用户滚动鼠标时,标签的内容也会跟着滚动*/
bottom:100px; /*表示距离底部(bottom)的距离是300像素,当然你可以把bottom参数改成top那就宝石距离顶部的距离是300像素!*/
right:0; /*表示匹配的标签在页面的右侧*/
} </style>
</head>
<body>
<div class="RollingContent">
<div>
<div class="yzj">666666666</div>
</div>
</div> <div style="background-color:#dddddd;height:2000px;"></div>
<div class="FixedImmobility">返回顶部</div> <div class="yzj">我要去哪</div>
</body>
</html>
九.对话框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style>
.modal{ /*定义一个对惶恐,让其在网页的正中间!*/
height:300px; /*指定对话框的高度*/
width:400px; /*指定对话框的宽度*/
background-color:white; /*指定对话框的背景颜色*/
position:fixed; /*定义对话框是固定不动的,不会随着鼠标的滑动该改变其位置*/
top:;
left:50%;
margin-left:-200px;
top:200px;
margin-yop:-150px;
z-index:;
} .hide{
display:none; /*隐藏*/
} .touch{
position:fixed;
background-color:black;
top:;
left:;
right:;
bottom:;
z-index:;
opacity:0.5;
} </style> </head>
<body>
<input type="button" value="现身吧!" onclick="showDiv();"> <div style="background-color:#dddddd;height:2000px;"></div>
<div id="100" class="modal ">
<input type="button" value="隐身吧!" onclick="hideDiv();">
</div>
<div id="200" class="touch"></div> <script>
function showDiv() {
document.getElementById(100).classList.remove('hide');/*让display的值不为none,就无法隐藏数据了,数据就会原形毕露啦!*/
document.getElementById(200).classList.remove('hide');
} function hideDiv(){
document.getElementById(100).classList.add('hide'); /*原理同上,这里只是又把hide属性加上啦,即又让display的值等于none啦,这样数据的内容又会被隐藏掉啦!*/
document.getElementById(200).classList.add('hide');
}
</script> </body>
</html>
十.对话框案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style>
.modal{ /*定义一个对惶恐,让其在网页的正中间!*/
height:300px; /*指定对话框的高度*/
width:400px; /*指定对话框的宽度*/
background-color:white; /*指定对话框的背景颜色*/
position:fixed; /*定义对话框是固定不动的,不会随着鼠标的滑动该改变其位置*/
top:0;
left:50%;
margin-left:-200px;
top:200px;
margin-yop:-150px;
z-index:30; /*这个值谁大谁就会在上面的一层,和下面的touch选择器可以进行对比!*/
} .hide{
display:none; /*隐藏*/
} .touch{
position:fixed;
background-color:black;
top:0;
left:0;
right:0;
bottom:0;
z-index:20;
opacity:0.5; /*0.5表示永久透明,也就是说我们能看到第一层的数据,但是我们选择不了第一层的数据。*/
}
</style> </head>
<body>
<div style="background-color:#dddddd;height:3000px;">
<input type="button" value="现身吧!" onclick="showDiv();"> <h1>尹正杰:我有一只小毛驴从来也不骑,忽然一天心血来潮....</h1>
</div> <div id="100" class="modal hide">
<input type="button" value="隐身吧!" onclick="hideDiv();">
</div>
<div id="200" class="touch hide"></div> <script>
function showDiv() {
document.getElementById(100).classList.remove('hide'); <!--让display的值不为none,就无法隐藏数据了,数据就会原形毕露啦!-->
document.getElementById(200).classList.remove('hide');
}
function hideDiv(){
document.getElementById(100).classList.add('hide'); <!--原理同上,这里只是又把hide属性加上啦,即又让display的值等于none啦,这样数据的内容又会被隐藏掉啦-->
document.getElementById(200).classList.add('hide');
}
</script>
</body>
</html>
十一.浮动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title>
<style>
body{
margin:0; /*表示消除body标签的边距,也就是让margin的值为0即可。*/
}
</style>
</head>
<body>
<div style="background-color:slateblue;"> <!--定义父标签背景颜色是紫色,里面的div标签都是子标签。-->
<div style="float:left;background-color:green;">第一章</div> <!--float定义你的字符串往哪个方向飘动-->
<div style="float:left;background-color:green;">第二章</div>
<div style="float:right;background-color:green;">第三章</div>
<div style="clear:both;"></div> <!--其中style="clear:both;"这个参数表示父标签的高度随着子标签的高度一致。这种情况是其父级标签没有设置高度!-->
</div> <div style="heigh:48px;background-color:springgreen;line-height:48px"> <!--其中line-height:48px;表示会根据高度是48像素进行自动居中显示,所以line-height是根据已知高度居中的关键字-->
尹正杰
</div> <br/> <!--表示会打印一个空行--> <div style="heigh:48px;background-color:brown;text-align:center;"> <!--表示将数据进行上下左右居中操作!-->
尹正杰
</div>
</body>
</html>
十二.布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>尹正杰</title> <style>
body{
margin:0;
} .pg-header{
height:48px;
background-color:brown;
color:white;
line-height:48px;
} .yzj{
height:48px;width:980px;background-color:green;margin:0 auto /*根据宽度和高度自动居中*/
} .left{
float:left;
} .right{
float:right;
} .pg-header .menus a{
padding:0 10px; /*设置一个内边距,上下边距为0像素,左右边距为10像素*/
display:inline-block;
} .pg-header .menus a:hover{
background-color:bisque;
} </style> </head>
<body>
<div class="pg-header">
<div class="yzj">
<div>尹正杰</div>
<div class="menus left">
<a href="#">菜单一</a> <!--注意:"#"表示不做跳转,即使href是跳转参数,只是会在字符串下多一个下划线。-->
<a href="#">菜单二</a>
<a href="#">菜单三</a>
</div>
<div class="menus right">
<a href="#">登录</a>
<a href="#">注册</a>
</div> </div>
</div> <div class="yzj"></div> </body>
</html>
Css的前世今生的更多相关文章
- Matplotlib数据可视化(3):文本与轴
在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...
- CSS垂直居中总结
工作中遇到垂直居中问题,特此总结了一下几种方式与大家分享.本文讨论的垂直居中仅支持IE8+ 1.使用绝对定位垂直居中 <div class="container"> & ...
- JavaScript的前世今生
和CSS一样,JavaScript在各浏览器下并非完全一致,它所带来的兼容性问题时常困扰着我们,以至于现在“能否处理流行浏览器的兼容性问题”成为了检验一个程序员是否合格的标准之一.了解JavaScri ...
- CSS魔法堂:"那不是bug,是你不懂我!" by inline-block
前言 每当来个需要既要水平排版又要设置固定高宽时,我就会想起display:inline-block,还有为了支持IE5.5/6/7的hack*display:inline;*zoom:1;.然后发 ...
- 新手理解HTML、CSS、javascript之间的关系
http://www.cnblogs.com/dreamingbaobei/p/5062901.html 工作多年,一直忙忙碌碌的应用各种技术,现在不忙了,问问自己究竟在做什么,究竟会什么竟答不上来, ...
- CSS hack前传——背景图片全屏
在之前的博客CSS hack中我有提到,一个问题的解决让我对CSS hack的态度从不屑一顾,到认真研究了实验一下,事情是这样的,最近产品发布,向来狂妄的我被一个bug纠缠住了,甚至丧气的表示我做不出 ...
- inline-block 前世今生
曾几何时,display:inline-block 已经深入「大街小巷」,随处可见 「display:inline-block; *display:inline; *zoom:1; 」这样的代码.如今 ...
- CSS浮动属性Float详解
什么是CSS Float? float 是 css 的定位属性.在传统的印刷布局中,文本可以按照需要围绕图片.一般把这种方式称为“文本环绕”.在网页设计中,应用了CSS的float属性的页面元素就像在 ...
- 固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生>
固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生> 先上图例 & 无论多少数据--都完美! 背景:由于我司行业方向,需要很多数据报表,则t ...
随机推荐
- 安装tesserocr错误(未解决)
在win10下使用pip install tesserocr安装时,始终报错,未解决问题 解压tesserocr-2.2.2.tar.gz该文件夹后,查看setup.py文件,发现似乎model只能再 ...
- 团队项目第二周spec设计
本系统针对局域网进行联机聊天.聊天室分为服务器端和和客户端俩部分,服务器端程序主要 负责侦听客户端发来的信息,客户端需要登录到服务器端才可以实现正常的聊天功能. 1.本软件是一款局域网聊天软件,不能进 ...
- Protobuf一例
Developer Guide | Protocol Buffers | Google Developershttps://developers.google.com/protocol-buf ...
- 无法获得锁 /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
- Linux基础学习(3)--初学注意
第三章——初学注意 一.学习Linux的注意事项 1.Linux严格区分大小写 2.Linux中所有内容以文件形式保存,包括硬件: (1)硬盘文件是/dev/sd[a-p] (2)光盘文件是/dev/ ...
- 【Spring】—— 自动装配
一.Spring中装配bean的方式 1.在XML中显式配置 2.在Java中进行显式配置 3.隐士的bean发现机制和自动装配 二.自动装配示例 1.在需要装配到其他bean中的类中加入@Compo ...
- C# TreeView 连续点击 不触发AfterCheck事件
创建一个类 TreeView2 namespace System.Windows.Forms { public class TreeView2 : TreeView { protected overr ...
- hdu 5126 stars (四维偏序,离线,CDQ套CDQ套树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5126 思路:支持离线,那么我们可以用两次CDQ分治使四维降为二维,降成二维后排个序用树状数组维护下就好 ...
- Cuba项目配置IDEA,如何dubug
1.在cuba中编辑端口,如下图: 2.在IDEA中添加一个远程链接,添加为对应的端口号,然后运行debug即可 如果两个端口号不对应,就会报出以下的错误:unable to open debugge ...
- Mysql 主从服务器数据同步
安装2台windows Server 服务器,分别安装Mysql,配置环境变量,完成安装确认在CMD窗口可以使用Mysql命令 在Master服务器上创建同步账号,确保Slave服务器能访问Maste ...