zoukankan      html  css  js  c++  java
  • css培训一

    一.css reset的整理。

    最霸道的一句就是:*{margin:0;padding:0;},没办法,html标签基本都带有默认的padding或者margin,所以为了统一,就只有此策略了。

    更详细的css reset就是针对具体的标签订制。可以查看淘宝的css reset。

    若想有所思考,可以参考此文章对css reset的反思:http://www.zhangxinxu.com/wordpress/2010/04/css-reset%E7%9A%84%E9%87%8D%E6%96%B0%E5%AE%A1%E8%A7%86-%E9%81%BF%E5%85%8D%E6%A0%B7%E5%BC%8F%E9%87%8D%E7%BD%AE/

    二.css 盒模型。

    css盒模型是布局的核心。css3中针对css2.1中盒模型存在的缺点提出了两种盒模型:box-sizing:border-box 和box-sizing:content-box。

    border-box算是对css2.1的一个补充吧。

    我们先来看看css2.1中的盒模型概念。http://www.qianduan.net/css-box-model.html

    border-box属性比较好玩,宽度和高度卡死了,盒子始终就是那么宽,那么高。css2.1中虽然没有此属性,但是有的html标签的盒模型计算就是这个原理。

    请思考这个问题:

    input[type="submit"]{ width:100px; line-height:30px; height:30px; padding:10px; border:1px solid #333; }

    请问,input的实际宽度和实际高度是多少?(答案是100px,30px)

    css2.1虽然没有支持border-box属性,但是,我们可以使用css来进行模拟该属性。一切都是基于你对盒模型的理解。

    示例如下:

    html:

    <div class="box">
        <div class="inner">
            <h1>内容</h1>
        </div>
    </div>

    css:

    .box { width:100px; height:100px; }
    .box .inner { padding:10px; border:2px solid orange; }

    三.css布局。

    在讲布局前,我们可以了解下什么是普通文档流:http://bbs.blueidea.com/forum.php?mod=viewthread&tid=2994612

    布局通用的就是float,position,再加上display:inline-block。当然此处不讲css3中的布局。

    先说浮动float。float有三个属性,left,right,none.分别代表向左浮动,向右浮动和不浮动。

    通常后者float:none;是用来进行样式重置的。万不得已啊!

    下面仔细说说浮动的特性:

    • 浮动的盒子脱离了正常文档流。
    • 浮动的盒子宽度自适应(没定义宽度的情况下)

     以上两点足以概括浮动了。

    由于浮动的以上两点特性,在日常的工作中,你会碰到如下的问题:

    • 浮动闭合问题
    • 浮动清除
    • IE6的各种诡异问题。

     再说说定位。

    position有四个属性,static,fixed,relative,absolute。继承的属性不说。

    着重讲讲fixed,relative,absolute.

    在这里面,position被设置为fixed和absolute属性时,该元素是脱离了正常文档流。fixed,relative,absolute 三者定位需要参照物,并且会产生层叠值,层叠值默认为0,但是高于正常文档流。

    • position:fixed。其实fixed从含义上来看,是固定的。但是,它实质是一个绝对定位的特例。定位的参照物是浏览器的窗口。如今,这种应用很常见,当页面超过一屏时,滚动页面,顶部的导航条始终是固定的,内容则滚动变化,可以给用户一个良好的体验。
    • position:absolute。绝对定位,需要一个父系参照物作为定位的参考依据,就近参考。绝对定位有自适应宽高的特点。通常需要把父参考系定位为position:relative 或者position:absolute,这样才算它的参照物。
    • postion:relative。相对定位,相对定位的参照物是元素本身。该元素没有脱离正常文档流,并且占用了自己的位置。通常可以用该属性进行页面元素位置的微调。

     定位其实用的比较多,相对定位和绝对定位配合使用,就可以创造出灵活多变的布局,这点可以看看css zen garden。

    注意事项:

    1.层叠值z-index在一开始设置,请从1开始。

    2.子元素层叠值无法跨越父级层叠值。

    更多详见此文:http://bbs.blueidea.com/forum.php?mod=viewthread&tid=2733320

    再说说display:inline-block吧。

    浮动这东西,用多了蛋疼。会产生很多问题,所以,display:inline-block有时会派上用场。在浏览器兼容性上,该属性的使用还是受到了比较大的限制。

    更多详见:http://ued.taobao.com/blog/2012/08/inline-block/

    以上布局的知识可参考:http://www.w3.org/TR/CSS21/visuren.html#q15

  • 相关阅读:
    Source InSight context 窗口丢失的解决办法
    [EffectiveC++]item41:了解隐式接口和编译器多态
    [EffectiveC++]item04:Make sure the objects are initialized before they're used
    [EffectiveC++]item3:尽可能使用const
    linux man指令问题
    解读ARM成功秘诀:薄利多销推广产品
    source insight设置问题 [问题点数:20分,结帖人leecapacity]
    totalcommander
    firefox
    处理SecureCRT中使用vim出现中文乱码问题
  • 原文地址:https://www.cnblogs.com/my_front_research/p/2848281.html
Copyright © 2011-2022 走看看