• 2015-09-22 第四节课 CSS块级元素 行内元素 浮动 盒子模型 绝对定位、相当定位和固定定位


    常见的块级元素和行内元素

    一、块级元素

     1、块级元素的特点:
    
        (1)、默认显示在父标签的左上角.
    
        (2)、块级元素默认占满一行(沾满整个文档流)。
    
      2、常见的块级元素:
    
        <p>、<h1-h6>、<ulli>、<olli>、<div>、<tabl>、<hr>

    二、行内元素(内联元素)

      1、行内元素的特点:
    
        (1)、大小受到文字区域的影响,不受到width和height的影响。
    
        (2)、行内元素不会单独占满一行。
    
      2、常见的行内元素:
    
        <a>、<pan> 、<img> 、<input>

    三、块级元素和行内元素相互转换

      1、display:inline; 块级转成行内元素
    
      2、display:block; 行内元素转成块级元素
    
      3、display:inline-block; 具有行内元素和块级元素特点:(1)width、height会受到影响  (2)不会单独占满一行

    行内元素和块级元素的区别:

     

    1.行内元素默认情况下不会独占一行 块级元素占满一行

    2.行内元素的高宽(width height)不受属性的影响,只受到其里面内容的多少的影响。而块级元素大小会受到width和height影响。

    3.块级元素的margin和padding都正常,内联元素左右maring和左右padding正常,上下不正常不识别,也就是说不能通过margin-top和padding-top来改变行高

    关于第3点补充下:

    行内元素margin和padding左右间距在各个浏览器中解析的都完整,上下间距那就是杯具,各个浏览器解析还不一样,设置个背景貌似人家又认了,但是他周围的元素当他设置的上下间距不存在,所以在以后的项目中,不给行内元素设置上下的margin和padding了

    总结:想让自己独占一行就会块级元素(div,dl,dt,dd,ul,li...),想让元素和其它元素在一行就用行内元素(span,a,img),他们之间可以通过样式来转换disply:block;display:inline;

    还有一个属性:

    display:inline-block;

     将对象呈递为内联元素,与其它的元素同处一行,但是内部又呈现出块级元素,也就是可以设置宽和度,打破了块级元素和内联元素的区别.

     如果块状元素(div..)表现这种属性,与外部沟通是内联,内部又是块状的可以这样设置(display:inline;zooom:1)或 div{display:inline-block;//先触发layout}div{display:inline;}这两个顺序不能颠倒了,不然就失效了

    浮动(float)

    1、float: left  right
    2、清除浮动:clear:both ((清除两边的浮动)

    例子:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style type="text/css"> 
    #d1,#d2{
        width:100px;
        height:100px;
        border:solid 2px red;
        float:left;
    }
    #d3{
        width:100px;
        height:100px;
        border:solid 2px red;
        clear:left;    
    }
    #d4{
        width:100px;
        height:100px;
        border:solid 2px red;    
    }
    </style>
    </head>
    <body>
       <div id="d1">顶顶顶1</div>
       <div id="d2">顶顶顶2</div>
        <div id="d3">顶顶顶3</div>
         <div id="d4">顶顶顶4</div> 
    </body>
    </html>
    显示的效果1: 如果想让3和4并排在一起的话就需要在#d3和#d4各加一个float:left;这样才能浮动! 【代码如下】: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css">  #d1,#d2
    { width:100px; height:100px; border:solid 2px red; float:left; } #d3{ width:100px; height:100px; border:solid 2px red; clear:left;    float:left; } #d4{ width:100px; height:100px; border:solid 2px red; float:left; } </style> </head> <body>   <div id="d1">顶顶顶1</div>   <div id="d2">顶顶顶2</div>   <div id="d3">顶顶顶3</div> <div id="d4">顶顶顶4</div> </body> </html> 显示效果2: 如果在#d4里面去掉float:left;那么就会没有效果!  【代码如下】: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css">  #d1,#d2{ width:100px; height:100px; border:solid 2px red; float:left; } #d3{ width:100px; height:100px; border:solid 2px red; clear:left;    float:left; } #d4{ width:100px; height:100px; border:solid 2px red; } </style> </head> <body>   <div id="d1">顶顶顶1</div>   <div id="d2">顶顶顶2</div>   <div id="d3">顶顶顶3</div> <div id="d4">顶顶顶4</div> </body> </html>
    显示效果3: 在#d4里如果没有效果那么就要通过clear:left;来清除掉,达到效果!(也就是默认的效果 上面图1 所示) 【代码如下】: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css">  #d1,#d2
    { width:100px; height:100px; border:solid 2px red; float:left; } #d3{ width:100px; height:100px; border:solid 2px red; clear:left;    float:left; } #d4{ width:100px; height:100px; border:solid 2px red;   clear:left; } </style> </head> <body>   <div id="d1">顶顶顶1</div>   <div id="d2">顶顶顶2</div>   <div id="d3">顶顶顶3</div> <div id="d4">顶顶顶4</div> </body> </html>
    显示效果:

    css盒子模型

      内间距:padding

          padding:10px; 上下左右

          padding:10px20px; 上下、左右

          padding:10px 20px 10px; 上、左右、下

          padding:1px 1px 1px 10px; 上、右、下、左

       外间距:margin  

          margin:10px; 上下左右

          margin:10px20px; 上下、左右

          margin:10px 20px 10px; 上、左右、下

          margin:1px 1px 1px 10px; 上、右、下、左

    注意:padding各种情况,对行内元素是支持的,而margin对行内元素只支持左右,不支持上下。

    定位(绝对定位、相对定位和固定定位)

      1、绝对定位 position:absolute

       (1)、当设置为绝对定位之后,脱离了文档流,不会单独占满一行且不会受到浮动(float)的影响

       (2)、当设置为绝对定位后,元素的方位受到窗体的top left right bottom的影响。

      2、相对定位 positon:relative

       (1)、当设置为相对定位时候没有脱离文档流,就会受到浮动(float) 的影响。

       (2)、当设置为相对定位的时候,方位(top left right bottom)是相对于元素的父标签,由于标签并没有脱离文档流所以它四周的标签是占着位置的。

      3、固定定位 positon:fixed

       (1)、当设置为固定定位的时候,脱离了文档流,不会受到浮动的影响会固定在设定的位置。

  • 相关阅读:
    UU跑腿
    Java基础之接口与抽象类的区别
    经典面试题:Redis为什么这么快?
    isBlank与isEmpty
    阅读联机API文档
    从文本中取出链接地址 并检测链接地址能否打开
    2019-01-19=树莓派学习总结
    单片机知识点
    Linux 编程题
    嵌入式基础知识
  • 原文地址:https://www.cnblogs.com/admi88/p/4832902.html
Copyright © 2020-2023  润新知