css--技巧整理(1-13) - animagi

WBOY
WBOYオリジナル
2016-05-22 17:19:371497ブラウズ

 (更新中)

1、取消浏览器form中默认样式

  a、chrome下input和textarea的聚焦边框

    input,button,select,textarea{outline:none}

   b、取消chrome下textarea可拖动放大

    textarea{resize:none}

  c、解决chrome下input,textarea自动填充后有黄色背景 

    input:-webkit-autofill , textarea:-webkit-autofill , select:-webkit-autofill{

      -webkit-box-shadow: 0 0 0 1000px #FFFFFF inset;
     }

2、css高度自适应:

  .demo:after{content:".";display:block;height:0;overflow:hidden;clear:both;visibility:visible;}

3、低版本ie浏览器box-shadow

<span style="color: #000000;">.box {
    -moz-border-radius: 15px; /* Firefox */
    -webkit-border-radius: 15px; /* Safari 和 Chrome */
    border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */

    -moz-box-shadow: 10px 10px 20px #000; /* Firefox */
    -webkit-box-shadow: 10px 10px 20px #000; /* Safari 和 Chrome */

    box-shadow: 10px 10px 20px #000; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 */
    behavior: url(ie-css3.htc); /* 通知IE浏览器调用脚本作用于'box'类,只黑色阴影有效 */
}</span>

 .htc文件是个脚本文件,可以用来描述web行为,ie-css3.htc让IE浏览器支持CSS3的一些属性,其工作原理是用VML(将图形数据矢量化的标记语言)。

使用时要注意:

  1. 当前元素一定要有定位属性,像是position:relative或是position:absolute属性。
  2. z-index值一定要比周围元素的要高

相关博客:http://www.zhangxinxu.com/wordpress/?p=783

另外:

  behavior | url(#objID) | url(#default#behaviorName)

Behavior(行为)是IE5.0推出的东西,它的功能非常强大,结合样式表,可以给任何HTML对象增加行为(新的属性、方法、事件)

url ( url ) : 使用绝对或相对 url 地址指定DHTML行为组件(.htc)
url ( #objID ) : 使用二进制实现(作为 ActiveX?/STRONG> 控件)的行为。此处的 #objID 为 object 对象的id 属性值
url ( #default#behaviorName ) : IE的默认行为。由行为的名称标识( #behaviorName )指定

 

 

 

 

<strong>4、background-size兼容</strong>

  a、参数

background-size:contain; // 缩小图片来适应元素的尺寸(保持像素的长宽比);

background-size :cover; // 扩展图片来填满元素(保持像素的长宽比);

background-size :100px 100px; // 调整图片到指定大小;

background-size :50% 100%; // 调整图片到指定大小,百分比相对于包含元素的尺寸。

  b、浏览器兼容:

IE 和遨游不支持;

Firefox 添加私有属性 -moz-background-size 支持;

Safari 和 Chrome 添加私有属性 -webkit-background-size 支持;

Opera 不支持 background-size 属性,添加其私有属性 -o-background-size 也不支持。

  c、IE兼容代码:

html,body{width: 100%;}
.main-warp{
  width: 100%;
  background:url(../../images/mall/list/bj.jpg) no-repeat;
  background-size: 100% 100%;
  filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../images/mall/list/bj.jpg', sizingMethod='scale');
}

5、css绝对定位元素在页面居中

  注意:必须设定height和width值

方法1:

<span style="color: #800000;">div</span>{<span style="color: #ff0000;">
    height</span>:<span style="color: #0000ff;">10%</span>;<span style="color: #ff0000;">
    width</span>:<span style="color: #0000ff;">30%</span>;<span style="color: #ff0000;">
    position</span>:<span style="color: #0000ff;"> absolute</span>;<span style="color: #ff0000;">
    margin</span>:<span style="color: #0000ff;"> auto</span>;<span style="color: #ff0000;"> 
    top</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> left</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> bottom</span>:<span style="color: #0000ff;"> 0</span>;<span style="color: #ff0000;"> right</span>:<span style="color: #0000ff;"> 0</span>;
}

 

方法2:

<span style="color: #800000;">div</span>{<span style="color: #ff0000;">
    height</span>:<span style="color: #0000ff;">10rem</span>;<span style="color: #ff0000;">
    width</span>:<span style="color: #0000ff;">30rem</span>;<span style="color: #ff0000;">
    position</span>:<span style="color: #0000ff;"> absolute</span>;<span style="color: #ff0000;">
    left</span>:<span style="color: #0000ff;">50%</span>;<span style="color: #ff0000;">
    margin-left</span>:<span style="color: #0000ff;">-15rem</span>;<span style="color: #ff0000;">
    top</span>:<span style="color: #0000ff;">50%</span>;<span style="color: #ff0000;">
    margin-top</span>:<span style="color: #0000ff;">-5rem</span>;
}

 

6、css 利用table-cell实现居中的方法

display:table;   此元素会作为块级表格来显示(类似

),表格前后带有换行符。    

display:table-cell;   此元素会作为一个表格单元格显示(类似

7、定位后遮挡

绝对、相对定位的元素,其父元素(包含块)为position:absolute;也可以,不是必须用position:relative。

如果包含块有宽、高限制,子元素超出部分会被遮挡住。包含块的父元素宽、高限制不影响。

      相关连接:http://www.zhihu.com/question/19926700

 

<strong>8、-webkit-font-smoothing</strong>

  设置字体的抗锯齿或者说光滑度的属性。

none                                     ------ 对低像素的文本比较好 

subpixel-antialiased                ------默认值 

antialiased                             ------抗锯齿

 

9、margin/padding-top/bottom 的百分比是按照 width 计算的

  看到2种说法,比较赞同第一种。

  (1)因为要构建在纵横两个方向上相同的 margin/padding。如果两个百分比的相对方式不同,那用百分比就无法得到垂直和水平一致的留白。CSS 的基本模型是着重于“排版”的需求,因此水平和垂直方向其实并不是同等权重的,更精确的说,是文字书写方向决定的。常见的横排文字时,我们排版的出发点是水平宽度一定,而垂直方向上是可以无限延展的。竖排文字则相反。所以在竖排文字时,margin/padding-* 其实就都按照 height 而不是 width 计算了。

  (2)如果用height来计算,百分比*容器高度=padding-top(假设这是A等式),但是容器的高度=内容高度+padding-top(B等式),如果A成立能得到 padding-top, padding-top又影响到B等式,但B等式又是A等式的条件,是死循环。

 
10、
  • 中图片位置偏下
  •  
     

        因为img是inline-block,图片高度小于字体高度时li行高受字体大小影响,图片按照字体高度的下边界对齐。

    2种解决方法:1、li设置font-size:0;

            2、图片设置display:block;

     

    11、火狐中设置height:100%; 时,padding-bottom无效

    兼容方法:

    不设置padding-bottom,用after伪类的高度代替

    {<span style="color: #ff0000;">
    content</span>:<span style="color: #0000ff;">"."</span>;<span style="color: #ff0000;">
    height</span>:<span style="color: #0000ff;">0.9rem</span>;<span style="color: #ff0000;">
    visibility</span>:<span style="color: #0000ff;">hidden</span>;<span style="color: #ff0000;">
    display</span>:<span style="color: #0000ff;">block</span>;<span style="color: #ff0000;">
    clear</span>:<span style="color: #0000ff;">both</span>;<span style="color: #ff0000;">
    font-size</span>:<span style="color: #0000ff;"> 0</span>;
    }

     

    12、设置overflow:scroll;后,子元素浮动失效

      因为受滚动条的宽度影响,如果一定要有滚动效果,就给父元素外再套一个div,设置宽度后,overflow:hidden;

    然后把父元素的宽增加大概20px

     

    13、连续点击时,防止背景变蓝

    <span style="color: #800000;">body</span>{<span style="color: #ff0000;">
        -moz-user-select</span>:<span style="color: #0000ff;"> none</span>; <span style="color: #008000;">/*</span><span style="color: #008000;">火狐</span><span style="color: #008000;">*/</span><span style="color: #ff0000;">
        -webkit-user-select</span>:<span style="color: #0000ff;"> none</span>; <span style="color: #008000;">/*</span><span style="color: #008000;">webkit浏览器</span><span style="color: #008000;">*/</span><span style="color: #ff0000;">
        -ms-user-select</span>:<span style="color: #0000ff;"> none</span>; <span style="color: #008000;">/*</span><span style="color: #008000;">IE10</span><span style="color: #008000;">*/</span><span style="color: #ff0000;">
        user-select</span>:<span style="color: #0000ff;"> none</span>;
    }

     

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。