CSS3
不可思议的纯CSS导航栏下划线跟随效果
li::before {
content: "";
position: absolute;
top: 0;
left: 100%;
width: 0;
height: 100%;
border-bottom: 2px solid #000;
transition: 0.2s all linear;
}
li:hover::before {
width: 100%;
left: 0;
}
li:hover ~ li::before {
left: 0;
}
背景缩放
/*Mozilla*/
-moz-background-size:auto||<length>||<percentage>||cover||contain;
/*Webkit*/
-webkit-background-size:auto||<length>||<percentage>||cover||contain;
/*Presto*/
-o-background-size:auto||<length>||<percentage>||cover||contain;
/*W3c*/
background-size:auto||<length>||<percentage>||cover||contain;
css简单的数学运算-加减乘除
width:calc(100%/3 - 20px);
注意:CSS3 中calc()关键字+(加)、-(减)运算符必须加空格
透明度
opacity: 0.5;
背景透明度
background: rgba(76, 175, 80, 0.3)
a.div不可以包含在P里
c.有一些是地址的问题, 连号例如&要用&转义
d.所有的标签一律用小写
e.所有的标签属性必须包括在" "里
f.链接最好都加上title(更具亲和力)
g.图片要加上alt="",属性留空都可以
h.页面布局用div+css,表格只出现在需要用表格的地方,比如表现数据
i.加粗用,而不用,因为只是改变字体样式,而代表了语气的强调,重要==,所以,呃。。重要的是语义~~
////////////////////////////////////
///// ////
///// 1、强制不换行 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
加属性white-space:nowrap;
////////////////////////////////////
///// ////
///// 2、高度达不到很小 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
定义div的高度为很小时有时达不到,在div后面加上overflow:hidden;
////////////////////////////////////
///// ////
///// 3、文字换行 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
CSS样式word-break:break-all
强制长的单词换行:
word-wrap:break-word;
整词换行
white-space:nowrap;
////////////////////////////////////
///// ////
///// 4、双表法调用样式表 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
查看某些符合标准站点的原代码,你可能看到,在调用样式表的地方有如下2句:
@import url( css/style01.css );
////////////////////////////////////
///// ////
///// 5、固定显示层里的字数 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
先定层宽width再加overflow:hidden;样式.
下载可以控制被除数,超出时自动出现...
{width:125px;height:20px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
////////////////////////////////////
///// ////
///// 6、最小高度能自适应高度 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
拥有最小高度能自适应高度,IE、FF全兼容的div设置
height:auto!important;height:200px;min-height:200px;
////////////////////////////////////
///// ////
///// 7、防止乱码 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
防止乱码,请将用于页面编码的meta charset放到title的前面
////////////////////////////////////
///// ////
///// 8、高度有时定不了 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
高度有时定不了,使用min-height 或min-width
////////////////////////////////////
///// ////
///// 9、区分firefox,IE7,IE6 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
比如 IE6能识别下划线_和星号*,IE7能识别星号*,当不能识别下划线_,而firefox两个都不能认识。
比如
div{ background:green; /* for firefox */
*background:red; /* for IE6 */
}
<div>我在IE6中看到是红色的,在firefox中看到是绿色的。</div>
于是大家还可以这样来区分firefox,IE7,IE6
margin-top:-15px; *margin-top:0px !important; *margin-top:0px;
注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。
////////////////////////////////////
///// ////
///// 10、透明度问题 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
透明度问题,在IE6 IE7中显示不正常,在firefox中显示正常
透明度问题,在IE6 IE7中和在firefox中均显示正常
////////////////////////////////////
///// ////
///// 11、背景问题 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
BACKGROUND: none transparent scroll repeat 0% 0%
第一 你的这句是错的。
但是系统会帮你解释成下面这样。
BACKGROUND:transparent none repeat scroll 0% 0%
分别代表
背景属性:背景颜色 背景图片 背景是否重复 背景时候随浏览器滚动 背景平位置 背景垂直位置
background : background-color || background-image || background-repeat || background-attachment || background-position
transparent表示透明无颜色
none 表示没有设置背景图片
repeat 表示图片重复
scroll 表示背景图片随浏览器下拉而滚动
0%水平位置在x0
0%垂直位置在y0
这个试试是background 的默认这是 ,
也就是说 没有对background属性进行设置的时候 他就会使用这用设置
////////////////////////////////////
///// ////
///// 12、CSS设置不转行 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
overflow:hidden 隐藏
white-space:normal 默认
pre 换行和其他空白字符都将受到保护
nowrap 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象
////////////////////////////////////
///// ////
///// 13、设置强行换行 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
word-break:
normal ; 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行
break-all : 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本
keep-all : 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量
亚洲文本的非亚洲文本
////////////////////////////////////
///// ////
///// 14、标题在框中间的制作方法/////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
标题
内容区
////////////////////////////////////
///// ////
///// 15、交互式按钮和图片 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
<a href="#"><img src="a.gif" width="192" height="51" border="0" onMouseOver="this.src='b.jpg'" onMouseOut="this.src='a.gif'" /></a>
////////////////////////////////////
///// ////
///// 16、隐藏多余被除数 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
隐藏多余数还可以在后面显示三点的属性
132456789132456789
但是这个属性不符合w3c标准
////////////////////////////////////
///// ////
///// 17、div自动高度设置 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
在DIV的里面放入下面层产生一个空格.
////////////////////////////////////
///// ////
///// 18、批量去链接的虚框 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
可以批量去掉网页上全部超链接的虚框
a{blr:expression(this.onFocus=this.blur());}
////////////////////////////////////
///// ////
///// 19、指针为手形 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
指针为手形 cursor: pointer;
////////////////////////////////////
///// ////
///// 20、常见问题 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
1、FF下给 div 设置 padding 后会导致 width 和 height 增加,但IE不会。(可用!important解决)
2、居中问题。
1) 垂直居中。将 line-height 设置为 当前 div 相同的高度,再通过 vertical-align: middle. (注意内容不要换行)
2) 水平居中。 margin: 0 auto; (当然不是万能)
3、若需给 a 标签内内容加上 样式,需要设置 display: block; (常见于导航标签)
4、FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float 的 div 在 ie 下 margin 加倍等问题。
5、ul 标签在 FF 下面默认有 list-style 和 padding 。最好事先声明,以避免不必要的麻烦。(常见于导航标签和内容列表)
6、作为外部 wrapper 的 div 不要定死高度,最好还加上 overflow: hidden ,以达到高度自适应。
7、关于手形光标。 cursor: pointer ,而 hand 只适用于 IE。
8、至于IE5以及其他浏览器就没有必要兼顾了,在这上面花时间不值得。
////////////////////////////////////
///// ////
///// 21、 万能 float 闭合 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
万能 float 闭合(非常重要)
.clear{clear:both;}
将以下代码加入Global CSS 中,给需要闭合的div加上 class="clear" 即可,屡试不爽。
程序代码
////////////////////////////////////
///// ////
///// 22、鼠标经过时改变属性 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
鼠标经过时改变属性:
onmouseover="this.style.backgroundColor='FF6600'"
onmouseout="this.style.backgroundColor='0066FF'"
////////////////////////////////////
///// ////
///// 23、改变按钮样式 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
onmousemove="this.className='buttom_hover'" onmouseout="this.className='buttom'"
////////////////////////////////////
///// ////
///// 24、css整体的设计 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
css整体的设计
@charset "utf-8";
body,input,table,select,textarea,h1,h2,h3,h4{
color:#555555;
font-family:Verdana, Tahoma, Arial, Helvetica, sans-serif;
}
body,input,table,select,textarea,h1{
font-size:12px;
font-weight:normal;
}
body,a,div,ul,ol,li,dl,dt,dd,p,span,form,pre,h1,h2,h3,h4,h5,h6{
margin:0;
padding:0;
}
body{
/*font:normal normal normal 12px/1.5em tahoma, "Microsoft Yahei", Simsun, Arial Unicode MS, Mingliu, Arial, Helvetica;*/
text-align: center;
height:100%;
word-break : break-all;
}
////////////////////////////////////
///// ////
///// 25、单词间的距离 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
单词间的距离:利用字间距属性word-spacing,可以调整单词间的距离。
.h2 {word-spacing:5pt}
////////////////////////////////////
///// ////
///// 26、字母间距 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
字母间距:利用字母间距属性letter-spacing,可以调整单词中每个字母间的距离。
. h2 {letter-spacing:10pt};
////////////////////////////////////
///// ////
///// 27、手形指针 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
24.cursor: pointer;和cursor: hand;在IE里边都是代表手形指针
但是在FireFox里边hand是无效的.
所以推荐使用cursor: pointer;来表示手形鼠标指针.
但是这样带来的问题就是点击链接时候会跳到页面最上边,而且地址栏最后会多出一个#来~
所以推荐用 href=”javascript:void(0)”来表示空连接~
////////////////////////////////////
///// ////
///// 28、首行缩进两格 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
.t_msgfont{ text-indent: 2em; }其中 2em 代表两个中文字符的宽度。
////////////////////////////////////
///// ////
///// 29、简体转成utf-8 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
26.如果页面由简体转成utf-8时CSS部分就不能有任何全角符号,否则好容易出错的.比如说样式无效等等.
解决方法:把CSS文件也转成UTF-8的格式就可以了,也就是在CSS的最前面加上 @charset "utf-8";
////////////////////////////////////
///// ////
///// 30、层垂直居中于浏览器中 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
怎样使一个层垂直居中于浏览器中?
div {
position:absolute;
top:50%;
left:50%;
margin:-100px 0 0 -100px;
width:200px;
height:200px;
border:1px solid red;
}
-->
////////////////////////////////////
///// ////
///// 31、列表前面点的样式 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
disc (缺省值,黑圆点)
circle (空心圆点)
square (小黑方块)
decimal (数字排序)
lower-roman (小写罗马字排序)
upper-roman (大写罗马字排序)
lower-alpha (小写字母排序)
upper-alpha (大写字母排序)
none (无列表项标记)
////////////////////////////////////
///// ////
///// 32、页面变成黑白 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
使整个页面变成黑白filter:Gray;放在body中
////////////////////////////////////
///// ////
///// 33、浮动ie产生的双倍距离 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略}
这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果 diplay:table;
////////////////////////////////////
///// ////
///// 34、用iframe自动适应高度 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
<IFRAME id=headlogin marginWidth=0 marginHeight=0 src="xxx" frameBorder=0 width=100% scrolling=no height=25 onload="this.height=this.contentWindow.document.body.scrollHeight"></IFRAME>
////////////////////////////////////
///// ////
///// 35、样式名字不可以以数字开头 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
样式名字不可以以数字开头,比如#33safds{...}
////////////////////////////////////
///// ////
///// 36、未知高度垂直居中样式写法 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
#div1, #div2 {display:table-cell; *display: inline; zoom:1; vertical-align:middle;}
blah blah...看见我居中了吗?
sdfs
sd
fsd
f
sd
fs
d
////////////////////////////////////
///// ////
///// 37、样式控制打开链接的方法/////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
.target2 a:active {test:expression(target="_blank");}
////////////////////////////////////
///// ////
///// 38、ifream透明背景 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
<iframe src="http://www.169.net/index/footer.html" width="960" marginwidth="0" height="100" marginheight="0" align="top" scrolling="no" frameborder="0" style="background:#000;" allowTransparency="true"></iframe>
////////////////////////////////////
///// ////
///// 39、图片垂直居中 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
.img_middle {overflow:hidden; position:relative; display:table-cell; text-align:center; vertical-align:middle; margin:0;padding:0}
.img_middle p { position:static; +position:absolute; top:50%; margin:0;padding:0}
.img_middle img { position:static; +position:relative; top:-50%;left:-50%;margin:0;padding:0}
////////////////////////////////////
///// ////
///// 40、CSS控制input悬停样式 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
input {star : expression(
onmouseover=function(){this.style.width="200px"},
onmouseout=function(){this.style.width="100px"})}
////////////////////////////////////
///// ////
///// 41、只有IE7认识 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
*+html div{}
这个只有IE7认识,很好用
////////////////////////////////////
///// ////
///// 42、IE6支持PNG透明的方法 /////
///// //////
/////////////////////////////////////////
-------------------------------------------------------------------------------
在样式里使用滤镜#png {
position:absolute;background: url(../images/bg.png) repeat;_background:none;_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='scale', src="images/bg.png");
}
注:使用 AlphaImageLoader 后该区域的超链接和按钮会失效,所以需对链接或按钮直接设置相对位置,让它们浮动于滤镜区域的上面。
IE7支持AlphaImageLoader,避免冲突建议使用CSS hack区分开,只针对IE6使用。
-------------------------------------------------------------------------------
////////////////////////////////////
///// ////
///// 43、透明度 /////
///// //////
/////////////////////////////////////////
----------------------------------------------
filter:alpha(opacity=100); -moz-opacity:1; opacity:1;
/////////////////////////////////////////////////////////////
针对google浏览器的hack
body:nth-of-type(1) .me{color:#ff0000; }
在样式前面加上body:nth-of-type(1)
////////////////////////////////////////
默认高度
height:auto!important;height:200px;min-height:200px;
////////////////////////////////////
///// ////
///// 44、钮按变灰色 /////
///// //////
/////////////////////////////////////////
.button_gray{filter:Gray; -moz-opacity:0.3; cursor:default;}
////////////////////////////////////
///// ////
///// 45、半透明背景 /////
///// //////
/////////////////////////////////////////
.bg{background-color: #666;width: 100%;height: 100%;left:0;top:0;filter:alpha(opacity=50);opacity:0.5;z-index:1;position:fixed!important;position:absolute;_top:expression_r_r(eval_r(document.compatMode && document.compatMode=='CSS1Compat') ? documentElement.scrollTop + (document.documentElement.clientHeight-this.offsetHeight)/2 :document.body.scrollTop + (document.body.clientHeight - this.clientHeight)/2);}
////////////////////////////////////
///// ////
///// 46、表单上传文件样式 /////
///// //////
/////////////////////////////////////////
.file1{height:24px;float:left; display:inline; overflow:hidden;}
.file1 input{height:17px;border:1px #d4d4d4 solid; font:12px 宋体; background:#fff; padding:4px 5px 0 5px;}
.file2{width:75px; height:23px; background:url(../images/ico.gif) 15px -2562px no-repeat;overflow:hidden; float:left;}
.filebtn{width:75px; height:32px; margin-left:-130px;*margin-left:0px!important; *margin-left:-3px;filter:alpha(opacity=0);-moz-opacity:0; position:relative; top:-5px; left:-5px;cursor:pointer;}
////////////////////////////////////
///// ////
///// 47、IE8 CSS hack /////
///// //////
/////////////////////////////////////////
"\9" 例:"margin:0px auto\9;".这里的"\9"可以区别所有IE和FireFox.
"*" IE6、IE7可以识别.IE8、FireFox不能.
"_" IE6可以识别"_",IE7、IE8、FireFox不能.
background-color: #CC00FF; /*所有浏览器都会显示为紫色*/
background-color: #FF0000\9; /*IE6、IE7、IE8会显示红色*/
*background-color: #0066FF; /*IE6、IE7会变为蓝色*/
_background-color: #009933; /*IE6会变为绿色*/
////////////////////////////////////
///// ////
///// 48、解决IE8样式问题 /////
///// //////
/////////////////////////////////////////
在页面上插入