前端開發系列(十四)CSS教程(9)

一、CSS樣式設置小技巧

1.1、水平居中設置-行內元素

我們在實際工作中常會遇到需要設置水平居中的場景,比如爲了美觀,文章的標題一般都是 水平居中 顯示的。
這裏我們又得分兩種情況:行內元素 還是 塊狀元素 ,塊狀元素裏面又分爲定寬塊狀元素,以及不定寬塊狀元素。今天我們先來了解一下行內元素怎麼進行水平居中?
如果被設置元素爲文本、圖片等行內元素時,水平居中 是通過給父元素設置 text-align:center 來實現的。(父元素和子元素:如下面的html代碼中,div是“我想要在父容器中水平居中顯示”這個文本的父元素。反之這個文本是div的子元素 )如下代碼:<div class="txtCenter">我想要在父容器中水平居中顯示。</div>

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8">
		<title>定寬塊狀元素水平居中</title>
		<style>
			div{
				border:1px solid red;
				margin:20px;
			}
			div.txtCenter{
				text-align:center;
			}
			.imgCenter{
				text-align:center;
			}
		</style>
	</head>
	<body>
		<div class="txtCenter">我是文本,哈哈,我想要在父容器中水平居中顯示。</div>
		<!--下面是任務部分-->
		<div class="imgCenter"><img src="http://img.mukewang.com/52da54ed0001ecfa04120172.jpg" /></div>
	</body>
</html>

運行結果:
在這裏插入圖片描述

1.2、水平居中設置-定寬塊狀元素

當被設置元素爲 塊狀元素 時用 text-align:center 就不起作用了,這時也分兩種情況:定寬塊狀元素不定寬塊狀元素
這一小節我們先來講一講定寬塊狀元素。(定寬塊狀元素:塊狀元素 的寬度 width 爲固定值。)
滿足定寬和塊狀兩個條件的元素是可以通過設置 “左右margin” 值爲 “auto” 來實現居中的。我們來看個例子就是設置 div 這個塊狀元素水平居中:

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>定寬塊狀元素水平居中</title>
		<style>
			div{
				border:1px solid red;
				width:200px;   /*定寬*/
				margin:20px auto;
			}
		</style>
	</head>
	<body>
		<div>我是定寬塊狀元素,我要水平居中顯示。</div>
	</body>
</html>

運行結果:
在這裏插入圖片描述

1.3、水平居中總結-不定寬塊狀元素方法(一)

在實際工作中我們會遇到需要爲 “不定寬度的塊狀元素” 設置居中,比如網頁上的分頁導航,因爲分頁的數量是不確定的,所以我們不能通過設置寬度來限制它的彈性。(不定寬塊狀元素:塊狀元素的寬度width不固定。)
不定寬度的塊狀元素有三種方法居中(這三種方法目前使用的都很多):
1、 加入 table 標籤
2、 設置 display: inline 方法:與第一種類似,顯示類型設爲 行內元素,進行不定寬元素的屬性設置
3、 設置 position:relative 和 left:50%:利用 相對定位 的方式,將元素向左偏移 50% ,即達到居中的目的
這一小節我們來講一下第一種方法:
爲什麼選擇方法一加入 table標籤 ? 是利用 table標籤 的長度自適應性—即不定義其長度也不默認父元素 body 的長度(table其長度根據其內文本長度決定),因此可以看做一個定寬度塊元素,然後再利用定寬度塊狀居中的margin的方法,使其水平居中。

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8">
		<title>不定寬塊狀元素水平居中</title>
		<style>
			table{
				border:1px solid;
				margin:0 auto;
			}
		</style>
	</head>
	<body>
		<div>
			<table>
				<tbody>
					<tr><td>
						<ul>
						<li>我是第一行文本</li>
						<li>我是第二行文本</li>
						<li>我是第三行文本</li>
						</ul>
					</td></tr>
				</tbody>
			</table>
		</div>
	</body>
</html>

運行結果:
在這裏插入圖片描述

1.4、水平居中總結-不定寬塊狀元素方法(二)

除了上一節講到的插入 table標籤,可以使不定寬塊狀元素水平居中之外,本節介紹第2種實現這種效果的方法,改變元素的 display 類型爲行內元素,利用其屬性直接設置。
第二種方法:改變塊級元素的 displayinline 類型(設置爲 行內元素 顯示),然後使用 text-align:center 來實現居中效果。如下例子:

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8">
		<title>不定寬塊狀元素水平居中</title>
		<style>
			.container{text-align:center;}
			.container ul{list-style:none;margin:0;padding:0;display:inline;}
			.container li{margin-right:8px;display:inline;}
		</style>
	</head>
	<body>
		<div class="container">
			<ul>
				<li><a href="#">1</a></li>
				<li><a href="#">2</a></li>
				<li><a href="#">3</a></li>
			</ul>
		</div>
	</body>
</html>

運行結果:
在這裏插入圖片描述

1.5、水平居中總結-不定寬塊狀元素方法(三)

除了前兩節講到的插入table標籤,以及改變元素的display類型,可以使不定寬塊狀元素水平居中之外,本節介紹第3種實現這種效果的方法,設置浮動和相對定位來實現。
**方法三:**通過給父元素設置 float,然後給父元素設置 position:relativeleft:50%,子元素設置 position:relativeleft: -50% 來實現水平居中。
我們可以這樣理解:假想 ul 層的父層(即下面例子中的 div 層)中間有條平分線將 ul 層的父層(div 層)平均分爲兩份,ul 層的 css 代碼是將 ul 層的最左端與 ul 層的父層(div 層)的平分線對齊;而 li 層的 css 代碼則是將 li 層的平分線與 ul 層的最左端(也是 div 層的平分線)對齊,從而實現 li 層的居中。

代碼示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8">
		<title>不定寬塊狀元素水平居中</title>
		<style>
		.container{
			float:left;
			position:relative;
			left:50%
		}
		.container ul{
			list-style:none;
			margin:0;
			padding:0;
			position:relative;
			left:-50%;
		}
		.container li{
			float:left;
			display:inline;
			margin-right:8px;
		}
		/*下面是代碼任務區*/
		.wrap-center{
			background:#ccc;
		}
		</style>
	</head>
	<body>
	<div class="container">
		<ul>
			<li><a href="#">1</a></li>
			<li><a href="#">2</a></li>
			<li><a href="#">3</a></li>
		</ul>
	</div>

	<!--下面是代碼任務區-->
	<div class="wrap">
		<div class="wrap-center">我們來學習一下這種方法。</div>
	</div>
	</body>
</html>

運行結果:
在這裏插入圖片描述


此篇博客代碼下載地址:CSS教程9代碼下載
博主的所有博客目錄如下:博客文章目錄彙總
Java面試部分的博客目錄如下:Java筆試面試目錄

轉載請標明出處,原文地址:https://blog.csdn.net/weixin_41835916 如果覺得本文對您有幫助,請點擊支持一下,您的支持是我寫作最大的動力,謝謝。
這裏寫圖片描述

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