zoukankan      html  css  js  c++  java
  • css学习の第三弹—盒模型的创建和使用

    一、css盒模型:
    元素分类:
    块状元素、内联元素(又叫行内元素)和内联块状元素。
    》》常用的块状元素有:
    <div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
    设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。
    a{display:block;}
    块级元素特点:
    1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
    2、元素的高度、宽度、行高以及顶和底边距都可设置。
    3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
    》》常用的内联元素有:
    <a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
    块状元素也可以通过代码display:inline将元素设置为内联元素。
    使用语法和block一致。
    内联元素特点:
    1、和其他元素都在一行上;
    2、元素的高度、宽度及顶部和底部边距不可设置;
    3、元素的宽度就是它包含的文字或图片的宽度,不可改变。
    》》常用的内联块状元素有:
    <img>、<input>
    同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。
    1、和其他元素都在一行上;
    2、元素的高度、宽度、行高以及顶和底边距都可设置。
    》》盒模型—边框
    div{
      border:2px solid red;
    }
    上面是 border 代码的缩写形式,可以分开写:
    div{
      border-2px;
      border-style:solid;
      border-color:red;
    }
    *****注意:
    1、border-style(边框样式)常见样式有:
    dashed(虚线)| dotted(点线)| solid(实线)。
    2、border-color(边框颜色)中的颜色可设置为十六进制颜色,如:
    border-color:#888;//前面的井号不要忘掉。
    3、border-width(边框宽度)中的宽度也可以设置为:
    thin | medium | thick(但不是很常用),最常还是用象素(px)。
    》》盒模型—一个方向边框的设计
    div{border-bottom:1px solid red;}
    同样可以使用下面代码实现其它三边(上、右、左)边框的设置:
    border-top:1px solid red;
    border-right:1px solid red; 
    border-left:1px solid red;
    》》
    》》填充
    div{padding:20px 10px 15px 30px;}
    顺序一定不要搞混。可以分开写上面代码:
    div{
      padding-top:20px;
      padding-right:10px;
      padding-bottom:15px;
      padding-left:30px;
    }
    如果上、右、下、左的填充都为10px;可以这么写
    div{padding:10px;}
    如果上下填充一样为10px,左右一样为20px,可以这么写:
    div{padding:10px 20px;}
    》》边界
    div{margin:20px 10px 15px 30px;}
    也可以分开写:
    div{
      margin-top:20px;
      margin-right:10px;
      margin-bottom:15px;
      margin-left:30px;
    }
    如果上右下左的边界都为10px;可以这么写:
    div{ margin:10px;}
    如果上下边界一样为10px,左右一样为20px,可以这么写:
    div{ margin:10px 20px;}
    总结一下:padding和margin的区别,padding在边框里,margin在边框外。
    》》css布局模型(网页)
    在网页中,元素有三种布局模型:
    1、流动模型(Flow)
    默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。
    流动布局模型具有2个比较典型的特征:
    第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
    第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)
    2、浮动模型 (Float)
    float:left;
    float:left;
    左右两边靠齐:用#。
    3、层模型(Layer)
    (1)、绝对定位(position: absolute)
    设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。
    div{
      200px;
      height:200px;
      border:2px red solid;
      position:absolute;
      left:100px;
      top:50px;
    }
    <div id="div1"></div>
    (2)、相对定位(position: relative)
    position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。
    *****注释:虽然div元素相对于以前的位置产生了偏移,但是div元素以前的位置还是保留着
    (3)、固定定位(position: fixed)
    position: fixed
    与background-attachment:fixed;属性功能相
    Relative和Absolution组合使用
    1、参照定位的元素必须是相对定位元素的前辈元素:
    <div id="box1"><!--参照定位的元素-->
      <div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
    </div>
    从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。
    2、参照定位的元素必须加入position:relative;
    #box1{
      200px;
      height:200px;
      position:relative;       
    }
    3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
    #box2{
      position:absolute;
      top:20px;
      left:30px;        
    }
    这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    *****注释: 

    块级元素主要有:
    address , blockquote , center , dir , div , dl , fieldset , form , h1 , h2 , h3 , h4 , h5 , h6 , hr , isindex , menu , noframes , noscript , ol , p , pre , table , ul , li
    内联元素主要有:
    a , abbr , acronym , b , bdo , big , br , cite , code , dfn , em , font , i , img , input , kbd , label , q , s , samp , select , small , span , strike , strong , sub , sup ,
    textarea , tt , u , var

    可变元素(根据上下文关系确定该元素是块元素还是内联元素):
    applet ,button ,del ,iframe , ins ,map ,object , script

  • 相关阅读:
    AMBA总线介绍
    placeholder不显示的解决办法(支持ie8以上)
    通过新浪微博API获取数据
    PHP时间运算
    PHP队列
    stream_context_create()
    http_build_query()
    shuffle()
    session_id()
    session_name()
  • 原文地址:https://www.cnblogs.com/saber123/p/6881728.html
Copyright © 2011-2022 走看看