来自:WEB资源网

链接:http://webres.wang/31-css-code-snippets-to-make-you-a-better-coder/

原文:http://www.designyourway.net/blog/resources/31-css-code-snippets-to-make-you-a-better-coder/

在一篇文章中收集所有的CSS代码片段几乎是不可能的事情,但是我们这里列出了一些相对于其他的更有用的代码片段,不要被这些代码的长度所吓到,因为它们都很容易实现,并且具有良好的文档。除了那些解决常见的恼人的问题外,也包含了一些解决新问题的新技术。

 

1.垂直对齐

如果你之前遇到过这个问题,你就应该知道它是多么的烦人,幸运的是,现在你可以使用CSS3变换来解决这个问题:

.vc{
   position: relative;
   top: 50%;
   -webkit-transform: translateY(-50%);
   -o-transform: translateY(-50%);
   transform: translateY(-50%);
}

 

2. 只在一侧或者两侧具有投影

 

.box-shadow {
   background-color: #AC92EC;
   width: 160px;
   height: 90px;
   margin-top: -45px;
   margin-left: -80px;
   position: absolute;
   top: 50%;
   left: 50%;
}
.box-shadow:after {
   content: "";
   width: 150px;
   height: 1px;
   margin-top: 88px;
   margin-left: -75px;
   display: block;
   position: absolute;
   left: 50%;
   z-index: -1;
   -webkit-box-shadow: 0px 0px 8px 2px #000000;
      -moz-box-shadow: 0px 0px 8px 2px #000000;
           box-shadow: 0px 0px 8px 2px #000000;
}

 

3. 渐变背景动画效果

从CSS3开始,动画变得非常的酷了,但是切不可过分的使用它们。下面这一技巧巧妙地的移动背景位置,使其看起来像动画一样:

button {
   padding: 15px;
   background-image: linear-gradient(#FC6E51, #FFF);
   background-size: auto 200%;
   background-position: 0 100%;
   transition: background-position 0.5s;
}    
button:hover {
   background-position: 0 0;
}

 

4. 将文本分成多列

div
{
   -moz-column-count:3; /* Firefox */
   -webkit-column-count:3; /* Safari and Chrome */
   column-count:3;
}

 

5. 表格自动宽度

 

td {
   white-space: nowrap;
}

 

6. 像出版物一样,第一个字变得大些

 

p:first-child::first-letter{
 font-family: "papyrus";
 font-size: 28px;
 font-weight: bold;
}

 

7. 特定浏览器的CSS Hacks的完整列表

有时候解决跨浏览器兼容性可能会非常的棘手,但这些特定浏览器的技巧可能会帮你解决问题。

/***** Selector Hacks ******/
 
/* IE6 and below */
* html #uno  { color: red }
 
/* IE7 */
*:first-child+html #dos { color: red }
 
/* IE7, FF, Saf, Opera  */
html>body #tres { color: red }
 
/* IE8, FF, Saf, Opera (Everything but IE 6,7) */
html>/**/body #cuatro { color: red }
 
/* Opera 9.27 and below, safari 2 */
html:first-child #cinco { color: red }
 
/* Safari 2-3 */
html[xmlns*=""] body:last-child #seis { color: red }
 
/* safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:nth-of-type(1) #siete { color: red }
 
/* safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:first-of-type #ocho {  color: red }
 
/* saf3+, chrome1+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {
#diez  { color: red  }
}
 
/* iPhone / mobile webkit */
@media screen and (max-device-width: 480px) {
#veintiseis { color: red  }
}
 
/* Safari 2 - 3.1 */
html[xmlns*=""]:root #trece  { color: red  }
 
/* Safari 2 - 3.1, Opera 9.25 */
*|html[xmlns*=""] #catorce { color: red  }
 
/* Everything but IE6-8 */
:root *> #quince { color: red  }
 
/* IE7 */
*+html #dieciocho {  color: red }
 
/* Firefox only. 1+ */
#veinticuatro,  x:-moz-any-link  { color: red }
 
/* Firefox 3.0+ */
#veinticinco,  x:-moz-any-link, x:default  { color: red  }
/***** Attribute Hacks ******/
 
/* IE6 */
#once { _color: blue }
 
/* IE6, IE7 */
#doce { *color: blue; /* or #color: blue */ }
 
/* Everything but IE6 */
#diecisiete { color/**/: blue }
 
/* IE6, IE7, IE8 */
#diecinueve { color: blue\9; }
 
/* IE7, IE8 */
#veinte { color/*\**/: blue\9; }
 
/* IE6, IE7 -- acts as an !important */
#veintesiete { color: blue !ie; } /* string after ! can be anything */

 

8. 创建模糊文本

 

.blurry-text {
  color: transparent;
  text-shadow: 0 0 5px rgba(0,0,0,0.5);
}

 

9. 不使用表格实现跨浏览器垂直水平居中图片

这段代码可以在一个已知宽高的容器内垂直水平居中一个未知大小的图片,这是 IE 的一个hack:

<figure class='logo'>
   <span></span>
   <img class='photo'/>
</figure>
.logo {
 display: block;
 text-align: center;
 display: block;
 text-align: center;
 vertical-align: middle;
 border: 4px solid #dddddd;
 padding: 4px;
 height: 74px;
 width: 74px; }
 .logo * {
   display: inline-block;
   height: 100%;
   vertical-align: middle; }
   .logo .photo {
   height: auto;
   width: auto;
   max-width: 100%;
   max-height: 100%; }

 

10. 高亮选中的 input

 

// HTML
<input id="mycheck1" type="checkbox" />
<label for="mycheck1">Check box label here</label>
<br />
<input id="mycheck2" type="checkbox" checked/>
<label for="mycheck2">Check box label here</label>
<br />
<input id="mycheck3" type="checkbox" />
<label for="mycheck3">Check box label here</label> // CSS
input:checked + label{
   background: yellow;  
}

 

11. 跨浏览器透明度

 

selector {
   filter: alpha(opacity=50); /* internet explorer */
   -khtml-opacity: 0.5;      /* khtml, old safari */
   -moz-opacity: 0.5;       /* mozilla, netscape */
   opacity: 0.5;           /* fx, safari, opera */
}

12. CSS投影

 

// 外投影
.shadow {
 -moz-box-shadow: 5px 5px 5px #ccc;
 -webkit-box-shadow: 5px 5px 5px #ccc;
 box-shadow: 5px 5px 5px #ccc;
} // 内投影
.shadow {
  -moz-box-shadow:inset 0 0 10px #000000;
  -webkit-box-shadow:inset 0 0 10px #000000;
  box-shadow:inset 0 0 10px #000000;
}

 

13. 跨浏览器最小高度

 

#div {
  min-height: 500px;
  height:auto !important;
  height: 500px;
}

 

14. 固定 Footer

 

#footer {
  position:fixed;
  left:0px;
  bottom:0px;
  height:30px;
  width:100%;
  background:#999;
} /* IE 6 */
* html #footer {
  position:absolute;
  top:expression((0-(footer.offsetHeight)+(document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight)+(ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop))+'px');
}

 

15. 清除浮动 Clearfix

 

/* slightly enhanced, universal clearfix hack */
.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
    }
.clearfix { display: inline-block; }
/* start commented backslash hack \*/
* html .clearfix { height: 1%; }
.clearfix { display: block; }
/* close commented backslash hack */

 

16. 给可点击元素添加手型光标

 

a[href], input[type='submit'], input[type='image'], label[for], select, button, .pointer {
      cursor: pointer;
}

 17. iPad 定向CSS

<!-- css -->
@media only screen and (max-device-width: 1024px) and (orientation:portrait) {
   .landscape { display: none; }
}
@media only screen and (max-device-width: 1024px) and (orientation:landscape) {
   .portrait { display: none; }
} <!-- example markup -->
<h1 class="portrait">Your device orientation is "portrait"<h1>
<h1 class="landscape">Your device orientation is "landscape"<h1>

 

18. Pre 标签内文本换行

 

pre{
height: 120px;
overflow: auto;
font-family: “Consolas”,monospace;
font-size: 9pt;
text-align:left;
background-color: #FCF7EC;
overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
margin: 0px 0px 0px 0px;
padding:5px 5px 3px 5px;
white-space : normal; /* crucial for IE 6, maybe 7? */
}

 

19. CSS3媒体查询

 

/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
} /* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
} /* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
} /* iPads (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
/* Styles */
} /* iPads (landscape) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : landscape) {
/* Styles */
} /* iPads (portrait) ----------- */
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
/* Styles */
} /* Desktops and laptops ----------- */
@media only screen
and (min-width : 1224px) {
/* Styles */
} /* Large screens ----------- */
@media only screen
and (min-width : 1824px) {
/* Styles */
} /* iPhone 4 ----------- */
@media
only screen and (-webkit-min-device-pixel-ratio : 1.5),
only screen and (min-device-pixel-ratio : 1.5) {
/* Styles */
}

 

20. 重置加载

 

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
   margin: 0;
   padding: 0;
   border: 0;
   outline: 0;
   font-weight: inherit;
   font-style: inherit;
   font-size: 100%;
   font-family: inherit;
   vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
   outline: 0;
}
body {
   line-height: 1;
   color: black;
   background: white;
}
ol, ul {
   list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
   border-collapse: separate;
   border-spacing: 0;
}
caption, th, td {
   text-align: left;
   font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
   content: "";
}
blockquote, q {
   quotes: "" "";
}

 

21. 多边框

元素必须是相对定位,且具有足够的padding来显示多余的边框:

#borders {
  position:relative;
  z-index:1;
  padding:30px;
  border:5px solid #f00;
  background:#ff9600;
}
#borders:before {
  content:"";
  position:absolute;
  z-index:-1;
  top:5px;
  left:5px;
  right:5px;
  bottom:5px;
  border:5px solid #ffea00;
  background:#4aa929;
} #borders:after {
  content:"";
  position:absolute;
  z-index:-1;
  top:15px;
  left:15px;
  right:15px;
  bottom:15px;
  border:5px solid #00b4ff;
  background:#fff;
}

 

22. 移除IE中textarea的滚动条

 

textarea { overflow: auto; }

 23. 简单但好看的引用样式

 

blockquote {
   background:#f9f9f9;
   border-left:10px solid #ccc;
   margin:1.5em 10px;
   padding:.5em 10px;
   quotes:"\201C""\201D""\2018""\2019";
}
blockquote:before {
   color:#ccc;
   content:open-quote;
   font-size:4em;
   line-height:.1em;
   margin-right:.25em;
   vertical-align:-.4em;
}
blockquote p {
   display:inline;
}

 

24. :-moz-placeholder

<!doctype html>
<html>
<head>
 <title>Placeholder demo</title>
 <style type="text/css">
   input:-moz-placeholder {
     color: green;
   }
 </style>
</head>
<body>
 <input id="test" placeholder="Placeholder text!">
</body>
</html>

 

25. 另一种固定footer的方式

 

* { margin:0; padding:0; } 

html, body, #wrap { height: 100%; }

body > #wrap {height: auto; min-height: 100%;}

#main { padding-bottom: 150px; }  /* must be same height as the footer */

#footer {
       position: relative;
       margin-top: -150px; /* negative value of footer height */
       height: 150px;
       clear:both;} /* CLEAR FIX*/
.clearfix:after {content: ".";
       display: block;
       height: 0;
       clear: both;
       visibility: hidden;}
.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
<div id="wrap">        <div id="main" class="clearfix">        </div> </div> <div id="footer"> </div>

 

26. 背景透明

 

.rgba {
 background-color: transparent;
 background-color: rgba(200,200,200,0.8);
 filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99dddddd,endColorstr=#99dddddd);
 -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99dddddd,endColorstr=#99dddddd)";
}

 

27. 居中未知宽度的DIV元素

.content {
   margin: 0 auto 8px;
   display: table;
   } .content div {
   display: table-cell;
   } <!--[if IE]>
.content {
   display: block;
   text-align: center;
   }
.content div {
   display: inline;
   zoom: 1;
}
<![endif]-->

 

28. 根据文件类型设置样式

 

/* external links */
a[href^="http://"]
{
padding-right: 13px;
background: url(external.gif) no-repeat center right;
} /* emails */
a[href^="mailto:"]
{
padding-right: 20px;
background: url(email.png) no-repeat center right;
} /* pdfs */
a[href$=".pdf"]
{
padding-right: 18px;
background: url(acrobat.png) no-repeat center right;
}

 

29. 解决IE6/7双倍margin/padding问题

 

ul li
{
 float: right;
 margin-right: 10px;
 *display: inline; /*Target IE7 and bellow*/
 _display: inline; /*Target IE6 and bellow*/
}
/* This example fixes the double right margin bug */

 

30. 更改选中文本的样式

::selection
{
color: white;
background-color: red;
} ::-moz-selection  /* Firefox needs an extra attention for this */
{
color: white;
background-color: red;
}

 

31. 首字下沉

p:first-letter{
       display:block;
       margin:5px 0 0 5px;
       float:left;
       color:#FF3366;
       font-size:60px;
       font-family:Georgia;
   }

【转】30+有用的CSS代码片段的更多相关文章

  1. 30+有用的CSS代码片段

    在一篇文章中收集所有的CSS代码片段几乎是不可能的事情,但是我们这里列出了一些相对于其他的更有用的代码片段,不要被这些代码的长度所吓到,因为它们都很容易实现,并且具有良好的文档.除了那些解决常见的恼人 ...

  2. HTML/CSS代码片段

    内容简介:本文收集了我常用的CSS代码片段! *reset @charset "utf-8"; /* reset */ body, dl, dd, h1, h2, h3, h4, ...

  3. 有用的Python代码片段

    我列出的这些有用的Python代码片段,为我节省了大量的时间,并且我希望他们也能为你节省一些时间.大多数的这些片段出自寻找解决方案,查找博客和StackOverflow解决类似问题的答案.下面所有的代 ...

  4. python超实用的30 个简短的代码片段(三)

    Python是目前最流行的语言之一,它在数据科学.机器学习.web开发.脚本编写.自动化方面被许多人广泛使用. 它的简单和易用性造就了它如此流行的原因. 如果你正在阅读本文,那么你或多或少已经使用过P ...

  5. python超实用的30 个简短的代码片段(二)

    Python是目前最流行的语言之一,它在数据科学.机器学习.web开发.脚本编写.自动化方面被许多人广泛使用. 它的简单和易用性造就了它如此流行的原因. 如果你正在阅读本文,那么你或多或少已经使用过P ...

  6. 60个有用CSS代码片段

    1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...

  7. Css学习总结(2)——60个有用CSS代码片段

    1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...

  8. 实用的60个CSS代码片段

    1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...

  9. (转)每位设计师都应该拥有的50个CSS代码片段

    原文地址:http://www.cnblogs.com/fengyuqing/archive/2013/06/15/css_50.html 面对每年如此多的 新趋势 ,保持行业的领先是个很困难问题. ...

随机推荐

  1. asp.net—执行分页存储过程的函数

    分页存储过程的T—SQL在之前的文章中已经跟大家分享过了 现在就对应 分页存储过程 跟大家分享下在.net中执行的函数. 该文章是希望给予新手一些编程过程中的帮助(大神可以帮忙指出代码中的不妥之处) ...

  2. GSS1 - Can you answer these queries I(线段树)

    前言 线段树菜鸡报告,stO ZCDHJ Orz,GSS基本上都切完了. Solution 考虑一下用线段树维护一段区间左边连续的Max,右边的连续Max,中间的连续Max还有总和,发现这些东西可以相 ...

  3. mybatis的dao向mapper.xml传入多参数

    https://www.cnblogs.com/super-chao/p/7722411.html 如果两种不同类型的参数传入,parameterType可以不写,直接获取#{0},#{1}就可以传入 ...

  4. Map容器中keySet()、entrySet()

    1.定义 keySet(): 返回的是只存放key值的Set集合,使用迭代器方式遍历该Set集合,在迭代器中再使用get方法获取每一个键对应的值.使用get方法获取键对应的值时就需要遍历Map集合,主 ...

  5. BZOJ 5334--[Tjoi2018]数学计算(线段树)

    5334: [Tjoi2018]数学计算 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 220  Solved: 147[Submit][Status ...

  6. POJ 2828Buy Tickets(线段树的单点维护)

    Buy Tickets Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 20462   Accepted: 10096 Des ...

  7. 日志分析与splunk浅谈

    难易程度:★★★ 阅读点:linux;python;web安全;日志分析; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 linux下的日志分析对企业来说非常重要,对我们分析p ...

  8. Flask从入门到精通之使用Flask-SQLAlchemy管理数据库

    Flask-SQLAlchemy 是一个Flask 扩展,简化了在Flask 程序中使用SQLAlchemy 的操作.SQLAlchemy 是一个很强大的关系型数据库框架,支持多种数据库后台.SQLA ...

  9. Python小白学习之路(二十二)—【生成器】

    一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协 ...

  10. Codeforces Round #556 (Div. 2)

    比赛链接 A 贪心 #include <cstdlib> #include <cstdio> #include <algorithm> #include <c ...