前端基础(一)--CSS布局基础

WalkerO49 8年前
   <h2>盒模型</h2>    <p>CSS中, Box Model叫盒模型(或框模型),Box Model规定了元素框处理元素内容(element content)、内边距(padding)、边框(border) 和 外边距(margin) 的方式。这种方式基本类似于Android开发中的布局方式,所以对于Android developer学习前端布局方式可以很快的入门。但是有一点,在Android中设置margin和padding的顺序是left、top、right、bottom,比如<code>setMargin(10, 20, 30, 20)</code>分别代表左上右下的间距分别为10px,20px,30px,20px;但是在CSS中的顺序是top、right、bottom、left,比如<code>margin: [10px, 20px, 30px, 20px]</code>分别代表左上右下间距分别为20px,10px,20px,30px。<br> 概述图如下</p>    <p><a href="https://simg.open-open.com/show/8f5bdbeee42ef7c880aa395bcd35ae16.png" rel="group"><img alt="前端基础(一)--CSS布局基础" src="https://simg.open-open.com/show/fa348488f9006d97122d746d69e8370c.png" width="994" height="1026"></a></p>    <p>定位基础</p>    <h2><code>position</code>定位</h2>    <p><code>position</code>包括以下几种类型的定位</p>    <ul>     <li> <p>static 默认值。任意 position: static; 的元素不会被特殊的定位。一个 static 元素表示它不会被“positioned”,一个 position 属性被设置为其他值的元素表示它会被“positioned”。</p> </li>     <li> <p>relative 相对布局,在原有基础上偏离使框偏离某个方向固定距离。跟Android中的布局方式很像<br> 例子</p> </li>    </ul>    <table>     <tbody>      <tr>       <td> <pre>  1  2  3  4  5  6  7  </pre> </td>       <td> <pre>  .relative2 {    position: relative;    top: -20px; //在原有top位置上向上偏移-20px    left: 20px; //在原有left位置上向左偏移20px    background-color: white;    width: 500px;  }  </pre> </td>      </tr>     </tbody>    </table>    <ul>     <li>absolute 绝对布局,向上寻找使用过<code>position</code>定位过(除了默认值static外)的祖先元素,然后依据该元素进行定位。</li>    </ul>    <table>     <tbody>      <tr>       <td> <pre>  1  2  3  4  5  6  7  8  9  10  11  12  </pre> </td>       <td> <pre>  .relative {    position: relative;    width: 600px;    height: 400px;  }  .absolute {    position: absolute;    top: 120px;    right: 0;    width: 300px;    height: 200px;  }  </pre> </td>      </tr>     </tbody>    </table>    <p>如图</p>    <p><a href="https://simg.open-open.com/show/6bb4fd836e4ed3a95ada22251cb4df1d.png" rel="group"><img alt="前端基础(一)--CSS布局基础" src="https://simg.open-open.com/show/b1c8ae5d5184fe5934eb415284b9a07f.png" width="1196" height="796"></a></p>    <ul>     <li>fixed 固定定位,相对于视窗来定位,这意味着即便页面滚动,它还是会停留在相同的位置。相当于在Android开发中<code>FrameLayout</code>中的某个元素指定<code>layout_gravity</code>使其固定在根布局的某个固定的位置。<br> 例子</li>    </ul>    <table>     <tbody>      <tr>       <td> <pre>  1  2  3  4  5  6  7  </pre> </td>       <td> <pre>  .fixed {    position: fixed;    bottom: 0;    right: 0;    width: 200px;    background-color: white;  }  </pre> </td>      </tr>     </tbody>    </table>    <p>该元素的位置始终在右下角保持不变。</p>    <h2><code>float</code>浮动</h2>    <blockquote>     <p>浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。</p>    </blockquote>    <p>可以这样理解,比如<code>float: left</code>就是向左移动,直到坐边缘碰到根元素或者另外一个佛洞的边框的边缘。也就是说,如果好好几个向左浮动的元素,那么它们是从左到右依次排列的。<br> 如下面的图</p>    <p><a href="https://simg.open-open.com/show/dcce6fdf19b04166214408bef2afa06b.png" rel="group"><img alt="前端基础(一)--CSS布局基础" src="https://simg.open-open.com/show/dcce6fdf19b04166214408bef2afa06b.png" width="1168" height="532"></a><br> <a href="https://simg.open-open.com/show/6435cf8e7d84ea2e9bedcf15caefe2f9.png" rel="group"><img alt="前端基础(一)--CSS布局基础" src="https://simg.open-open.com/show/6435cf8e7d84ea2e9bedcf15caefe2f9.png" width="1184" height="542"></a><br> <a href="https://simg.open-open.com/show/3aaa733c37bc9d247a0ec42db9729a07.png" rel="group"><img alt="前端基础(一)--CSS布局基础" src="https://simg.open-open.com/show/3aaa733c37bc9d247a0ec42db9729a07.png" width="1184" height="542"></a></p>    <h2><code>clear</code>清除浮动</h2>    <p>clear 属性定义了元素的哪边上不允许出现浮动元素。<br> 具体的例子参考<a href="/misc/goto?guid=4959673171623281764" rel="external">这里</a></p>    <p>三栏式布局</p>    <p>ife其中的一个任务<a href="/misc/goto?guid=4959673171712166324" rel="external">三栏式布局</a><br> 就是通过CSS的布局基础知识来写的。包括position和float。</p>    <p>代码在这里<a href="/misc/goto?guid=4959673171795720607" rel="external">三栏式布局</a><br> demo <a href="/misc/goto?guid=4959673171874506083">demo</a></p>    <p>参考</p>    <ul>     <li><a href="/misc/goto?guid=4958870312011368568" rel="external">learnlayout</a></li>     <li><a href="/misc/goto?guid=4959673171987624635" rel="external">w3school</a></li>    </ul>    <p>via:http://w4lle.github.io/2016/04/17/%E5%89%8D%E7%AB%AF%E5%9F%BA%E7%A1%80-%E4%B8%80-CSS%E5%B8%83%E5%B1%80%E5%9F%BA%E7%A1%80/ </p>