您现在的位置:首页 >> 前端 >> 内容

对于一些css样式的巧妙方法进行总结

时间:2017/12/16 9:35:54 点击:

  核心提示:对于一些css样式的巧妙方法进行总结。针对之前遇到过的一些特殊样式的实现,我今天做个总结,目的有二:一是将这些方法记录下来,以便将来需要用到时查找使用。二为将这些大神们智慧的结晶发扬光大,让广大前端程...

对于一些css样式的巧妙方法进行总结。

针对之前遇到过的一些特殊样式的实现,我今天做个总结,目的有二:一是将这些方法记录下来,以便将来需要用到时查找使用。二为将这些大神们智慧的结晶发扬光大,让广大前端程序猿们能够少走弯路。

  一、块元素水平垂直居中

  对于一个块元素的水平垂直居中,水平居中的方式不必多说,一般用margin:auto;等方法即可实现。而对于垂直居中,尽管有vertical-align:middle属性,但是由于其只适用于table标签中,而table标签效果不好控制的特点大家都懂。。。因此,我们一般常用的方法是:将子级元素设定inline-block属性,并将其行高属性:line-height的值设定为与父级元素相同的高度。

代码如下:

html方面:

<body>
    <p class="big">
      <p class="small"></p>
     </p>
  </body>

css方面: 

  .big{
    width:500px;
    height:500px;
    border:1px solid red;
    position:relative;
    }
  .small{
    width:200px; /*自己元素宽高可任意设定 */
    height:200px;
    position:absolute;left:0px;top:0px;right:0px;bottom:0px;
    margin:auto;
    
}

  在上述代码中,子级元素的宽高是任意设定的。都可以实现此元素在父级元素中水平垂直居中显示。在父级元素中,我们用了position的relative属性。在子级元素中,我们将它的position属性设定为absolute后,将四个方向的值都设定为0px。并且让他的margin值自适应。从审查元素中我们可以发现,如此设定后,子级元素的margin区域会充满整个父级元素,并且左右margin值是相等的,上下margin值亦如此。但是这并不符合,当代码数值有冲突时,优先解析top值及left值的规律。因为究竟是什么原理,小ge也不得而知。。如果有大神知晓,还望不吝赐教。但是这不失为一种好的办法,希望大家活学活用。

    二、after伪类清浮动

    通常我们在对块元素设浮动以后,需要对其清浮动,以免布局混乱。常见的清浮动方法主要有两种:1)、在后面的子元素css中写"clear:both;"。2)在浮动元素的父级元素中写"overflow:hidden"。现在,我们可以用第三种方法,利用after伪类写一个浮动属性,这样只要有需要清楚浮动的地方,我们就给其父元素加上这样一个浮动属性就可以了。

代码如下:

  .clearfix:after{

     content:"";

     display:table; /*利用table不允许浮动的属性来清除浮动。也可以替换成"overflow:hidden;"*/

     clear:both;

     }

    这种方法有个好处,即可以将其写入reset中,之后可以多次调用。

作者:网络 来源:2778085001