手记

CSS+CSS3 GitHub上填坑(兼容)常用代码总结

以下是常用的代码收集,没有任何技术含量,只是填坑的积累。转载请注明出处,谢谢。
原文链接:https://github.com/jsfront/src/blob/master/css.md

1. css 2.x

  • 文字换行
/*强制不换行*/

white-space:nowrap;

/*自动换行*/

word-wrap: break-word;
word-break: normal;

/*强制英文单词断行*/

word-break:break-all;
  • 两端对齐
text-align:justify;

text-justify:inter-ideogra
input,
button,
select,
textarea {
    outline: none;
}

textarea {
    resize: none;
}
.fixed-top
/* position fixed Top */

{
    position: fixed;
    bottom: auto;
    top: 0;
}

* html .fixed-top
/* IE6 position fixed Top*/

{
    position: absolute;
    bottom: auto;
    top: expression(eval(document.documentElement.scrollTop));
}

* html {
    background-image: url(about:blank);
    background-attachment: fixed;
}
  • clearfix
.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
}

.clearfix {
    display: inline-block;
}

html[xmlns] .clearfix {
    display: block;
}

* html .clearfix {
    height: 1%;
}

.clearfix {
    *zoom: 1;
}

.clearfix:after {
    clear: both;
    display: table;
    content: "";
}

.clearfix {
    overflow: hidden;
    _zoom: 1;
}
.tab {
    border-collapse: separate;
    border: 1px solid #e0e0e0;
}

.tab th,
.tab td {
    padding: 3px;
    font-size: 12px;
    background: #f5f9fb;
    border: 1px solid;
    border-color: #fff #deedf6 #deedf6 #fff;
}

.tab th {
    background: #edf4f0;
}

.tab tr.even td {
    background: #fff;
}

<table class="tab" width="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <th>111</th>
        <td>222</td>
    </tr>
    <tr>
        <th>111</th>
        <td>222</td>
    </tr>
</table>
  • min-height: 最小高度兼容代码
.minheight500 {
    min-height: 500px;
    height: auto !important;
    height: 500px;
    overflow: visible;
}
  • 鼠标不允许点击
cursor:not-allowed;
  • mac font: osx平台字体优化
    font-family:"Hiragino Sans GB","Hiragino Sans GB W3",'微软雅黑';
  • 文字过多后显示省略号
.ellipsis,
.ell {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

2. css 3

  • title 换行
  • 关闭 x 符号
×
  • 投影
.b {
    box-shadow: inset 1px -1px 0 #f1f1f1;
    text-shadow: 1px 1px 0px #630;
}

filter:progid:DXImageTransform.Microsoft.gradient(enabled='true', startColorstr='#99000000', endColorstr='#99000000');
background:rgba(0, 0, 0, .6);
background:rgba(0, 0, 0, 0.5);
filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#50000000', endColorstr='#50000000')\9;
  • search占位
::-webkit-input-placeholder {}
::-moz-input-placeholder {}
input:focus::-webkit-input-placeholder { color: transparent; }
-webkit-appearance:none;  google边框去除
input[type="search"]{-webkit-appearance:textfield;} // 去除chrome默认样式
http://i.wanz.im/2011/02/04/remove_border_from_input_type_search/
http://blog.csdn.net/do_it__/article/details/6789699
line-height: normal; /* for non-ie */
line-height: 22px\9; /* for ie */
pointer-events:none;
  • 去掉输入框聚焦时候的白色背景
-webkit-user-modify: read-write-plaintext-only;
 :focus{-webkit-tap-highlight-color:rgba(255, 255, 255, 0);
 -webkit-user-modify:read-write-plaintext-only;}
  • 变灰 gray
html{
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
    filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    -webkit-filter: grayscale(1);
}
  • firefox 阻止选中
-moz-user-focus:ignore;-moz-user-input:disabled;-moz-user-select:none;
  • 箭头
display:block;
border:solid transparent;
line-height: 0;
width:0;
height:0;
border-top:solid #0288ce;
border-width:8px 6px 0 6px;
border-style:solid;
border-width:7px;
border-color:transparent transparent transparent #ff7020;
position:absolute;
top: 0;
left: 0;
border-width:20px;
border-style:solid;
border-color:#d1ddde transparent transparent #d1ddde;

ie6 bug测试,把border-style设为dashed.

  • 取消textarea右下角可拖动手柄
resize:none
  • 取消chrome form表单的聚焦边框
input,button,select,textarea{outline:none}
textarea{resize:none}
  • 取消a链接的黄色边框
a{-webkit-tap-highlight-color:rgba(0,0,0,0);}
  • 取消input,button焦点或点击时蓝色边框
input{outline:none;}
  • webkit 水平居中
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align: center;
position:absolute;
top:50%;
left:50%;
transform:translate(-50%, -50%);
  • 取消chrome 搜索x提示
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
    display: none;
}
  • chrome取消默认黄色背景
input:-webkit-autofill {-webkit-box-shadow: 0 0 0px 1000px white inset;}
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px white inset;
}
autocomplete="off"
  • 手机版本网页a标记虚线框问题
a:focus {outline:none;-moz-outline:none;}
  • 焦点去除背景
-webkit-tap-highlight-color:rgba(255, 255, 255, 0);
-webkit-tap-highlight-color:transparent;  // i.e. Nexus5/Chrome and Kindle Fire HD 7''
  • placeholder占位符颜色自定义
input:-moz-placeholder {color: #369;}
::-webkit-input-placeholder {color:#369;}
  • IOS 禁用高亮
-webkit-tap-highlight-color:rgba(255,0,0,0.5);
-webkit-tap-highlight-color:transparent; /* For some Androids */
-webkit-overflow-scrolling:touch;
overflow-y:scroll;
-moz-user-select:none;
-webkit-user-select:none;
-ms-user-select:none;
user-select:none;
.blur {    
    -webkit-filter: blur(10px); /* Chrome, Opera */
       -moz-filter: blur(10px);
        -ms-filter: blur(10px);    
            filter: blur(10px);    
}

<img src="mm1.jpg" />
<img src="mm1.jpg" class="blur" />
#pullDown .pullDownIcon {
    display: inline-block;
    vertical-align: middle;
    width: 40px;
    height: 40px;
    background: url(https://github.com/chalecao/chale/blob/master/pull-icon%402x.png) 0 0 no-repeat;
    -webkit-background-size: 40px 80px;
    background-size: 40px 80px;
    -webkit-transition-property: -webkit-transform;
    -webkit-transition-duration: 250ms
}

#pullDown .pullDownIcon {
    -webkit-transform: rotate(0deg) translateZ(0)
}

#pullDown .pullDownLabel {
    display: inline-block;
    vertical-align: middle;
    margin-left: 5px;
}

#pullDown.flip .pullDownIcon {
    -webkit-transform: rotate(-180deg) translateZ(0)
}

#pullDown.loading .pullDownIcon {
    background-position: 0 100%;
    -webkit-transform: rotate(0deg) translateZ(0);
    -webkit-transition-duration: 0ms;
    -webkit-animation-name: loading;
    -webkit-animation-duration: 2s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear
}

@-webkit-keyframes loading {
    from {
        -webkit-transform: rotate(0deg) translateZ(0)
    }
    to {
        -webkit-transform: rotate(360deg) translateZ(0)
    }
}

<div id="pullDown" class="none loading">
    <span class="pullDownIcon"></span><span class="pullDownLabel">正在载入中...</span>
</div>
  • 手机多终端适配
@media (device-height:480px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone4/4s */
    .class{}
}
@media (device-height:568px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone5 */
    .class{}
}
@media (device-height:667px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone6 */
    .class{}
}
@media (device-height:736px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone6 Plus */
    .class{}
}
<meta content="telephone=no" name="format-detection">
  • 移除HTML5 input在type="number"时的上下小箭头

  //在chrome下:

  input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{
      -webkit-appearance: none !important;
      margin: 0; 
  }

  //Firefox下:

  input[type="number"]{-moz-appearance:textfield;}

  //第二种方案:
  //将type="number"改为type="tel",同样是数字键盘,但是没有箭头。
<a href="tel:15222222222">移动WEB页面JS一键拨打号码咨询功能</a>
<a href="sms:15222222222">移动WEB页面JS一键发送短信咨询功能</a>
<!--移动web页面自动探测电话号码-->
<meta name="format-detection" content="telephone=no">
<meta http-equiv="x-rim-auto-match" content="none">
  • CSS判断横屏竖屏
@media screen and (orientation: portrait) {
  /*竖屏 css*/
} 
@media screen and (orientation: landscape) {
  /*横屏 css*/
}
//判断手机横竖屏状态:
window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function() {
        if (window.orientation === 180 || window.orientation === 0) { 
            alert('竖屏状态!');
        } 
        if (window.orientation === 90 || window.orientation === -90 ){ 
            alert('横屏状态!');
        }  
    }, false); 
//移动端的浏览器一般都支持window.orientation这个参数,通过这个参数可以判断出手机是处在横屏还是竖屏状态。
  • rem 适配 公式:
var PAGE_MAX_WIDTH = 1280,
    BASE_FONT_SIZE = 50;
(function() {
    function n() {
        e.fontSize = Math.min(window.innerWidth / PAGE_MAX_WIDTH * BASE_FONT_SIZE, BASE_FONT_SIZE) + "px"
    }
    var e = document.documentElement.style;
    window.addEventListener("load", n),
    window.addEventListener("resize", n),
    n();
}());
  • 页面的切换使用了page-enter
<meta http-equiv="PAGE-ENTER" content="RevealTrans(Duration=0,Transition=1)" />

原文传送门

4人推荐
随时随地看视频
慕课网APP