HTML5大前端學習過程第二週(Day07)

一. 本節課學習目標。

  1. 掌握行屬性標籤以及塊屬性標籤的特點。
  2. 掌握display屬性的用法。
  3. 掌握浮動的作用以及用法。 ★重點
  4. 掌握清除浮動的方法。
  5. 能夠通過html,css,盒模型,浮動進行復雜網頁佈局。

二. 行屬性標籤以及塊屬性標籤特點。
根據標籤特性進行分類:

  1. 行屬性標籤。 默認display:inline;
    特點1:可以和其他行屬性標籤放置在同一行。 a, span, em, strong等。
    特點2:行屬性標籤的區域大小隻由內容來撐開,width和height屬性是無效的。
  2. 塊屬性標籤。 默認display: block;
    特點1:獨佔一行。 Div,p,h1~h6,ol,ul,li等。
    特點2:塊屬性標籤寬度默認和父元素寬度保持一致,高度由內容撐開,但是可以通過width和height屬性來更改寬高。
  3. 行內塊屬性標籤。 默認 display:inline-block; 比如:img,input。
    特點1:可以和其他行屬性標籤以及行內塊屬性標籤放置在同一行。
    特點2:可以通過css屬性修改寬高,width和height兩個屬性是有效的。
    解決的實質性問題:如果一個行屬性標籤(a,span)想要進行寬高的修改,就必須將display設置爲inline-block。

三. Display屬性的用法。
作用:用來更改元素的特性。 行屬性標籤更改爲塊屬性標籤,也可以反過來。
用法:直接給元素添加display屬性即可, display: inline(行屬性標籤),block(塊屬性標籤),inline-block(行內塊屬性標籤), none(元素隱藏掉);

四. 浮動。

  1. 作用。
    用來實現網頁中水平佈局的結構(讓塊元素可以放置在同一行)。
  2. 實現方式。
    給想要放置在同一行的元素添加float屬性即可。
    注意:給元素添加上float屬性之後,該元素會提升層級,脫離文檔流。 會影響到之前在同一個層級上的元素,當前float的元素層級提升,之前的層級位置空出,後面的元素自動佔據之前的位置,所以就看到覆蓋的效果。
  3. 浮動原理。
    a. 當給一個元素添加了float屬性,該屬性會給元素實現兩個功能(1.可以提升層級 2.可以允許當前元素的這一行能夠放置其他浮動元素了)。
    b. Float的值left和right,決定的當前浮動元素放置在這一行時,放到什麼位置,left最左邊,right最右邊。
    c. 當一個元素浮動時,會先去查找前面有沒有同級別的浮動元素,如果有,就往後放,如果放的時候,沒有空間了,則被擠到下一行。當被擠到下一行時,當前元素的上邊界會根據當前元素的浮動方向(left,right),保持和上一個浮動方向相同的元素的下邊界重合。
    當前元素是左浮動元素left,則會和上一個左浮動元素下邊界重合。
    當前元素是右浮動元素right,則會和上一個右浮動元素下邊界重合。

注意:如果一個元素既可以使用左浮動,又可以使用右浮動時,一定要注意,使用哪個浮動方向不會影響自己,是影響的下一個浮動元素。

五. 浮動產生的問題以及解決辦法。

  1. 影響兄弟元素佈局。
  2. 父元素高度塌陷。
    原因:當子元素添加float屬性之後,元素浮動了,則會影響父元素動態識別子元素的高度,浮動元素的高度父元素無法識別。
    解決方案1:給父元素指定一個高度即可。 但是這種方式不通用。
    解決方案2:給父元素添加overflow:hidden;屬性即可。

六. 浮動練習3-12宮格佈局。
效果圖:
在這裏插入圖片描述
實現代碼:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>12宮格 - 浮動</title>
		<style type="text/css">
			.wrap {
				/* 水平居中 */
				margin: 0 auto;
				width: 500px;
				/* border: 2px solid black; */
				/* 處理因子元素浮動造成的父元素高度塌陷的問題 */
				overflow: hidden;
			}
			.wrap>div {
				font-size: 50px;
				color: white;
				text-align: center;
			}
			.green {
				width: 100px;
				height: 100px;
				background-color: green;
				/* 一行文字垂直居中 */
				line-height: 100px;
				/* 浮動 - 左 */
				float: left;
			}
			.f6 {
				width: 300px;
				height: 100px;
				background-color: yellow;
				line-height: 100px;
				/* 浮動 - 左 */
				float: left;
			}
			.f7 {
				width: 200px;
				height: 200px;
				background-color: lightblue;
				line-height: 200px;
				/* 浮動 - 右 */
				float: right;
			}
			.f8 {
				width: 150px;
				height: 150px;
				background-color: gray;
				line-height: 150px;
				/* 浮動 - 左 */
				float: left;
			}
			.f9 {
				width: 150px;
				height: 150px;
				background-color: black;
				line-height: 150px;
				/* 浮動 - 左 */
				float: left;
			}
			.f10 {
				width: 200px;
				height: 150px;
				background-color: cyan;
				line-height: 150px;
				/* 浮動 - 右 */
				float: right;
			}
			.f11 {
				width: 300px;
				height: 100px;
				background-color: red;
				line-height: 100px;
				/* 浮動 - 左 */
				float: left;
			}
			.f12 {
				width: 500px;
				height: 100px;
				background-color: blue;
				line-height: 100px;
				/* 浮動 - 左 */
				float: left;
			}
		</style>
	</head>
	<body>
		<!-- .f${$}*12 -->
		<div class="wrap">
			<div class="f1 green">1</div>
			<div class="f2 green">2</div>
			<div class="f3 green">3</div>
			<div class="f4 green">4</div>
			<div class="f5 green">5</div>
			<div class="f6">6</div>
			<div class="f7">7</div>
			<div class="f8">8</div>
			<div class="f9">9</div>
			<div class="f10">10</div>
			<div class="f11">11</div>
			<div class="f12">12</div>
		</div>
	</body>
</html>

本節一些快捷方式:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			.box {
				/* 屬性的快速寫法 */
				/* 背景顏色  bc+tab*/
				background-color: yellow;
				/* 寬度 w值+tab */
				width: 500px;
				/* 高度 h值+tab */
				height: 200px;
				
			}
		</style>
	</head>
	<body>
		<!-- 1.生成一個div,div帶一個class屬性  .box+tab-->
		<div class="box"></div>
		<!-- 2.生成一個p,p帶一個class屬性 p.p1+tab-->
		<p id="box">
			
		</p>
	</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章