outline和border區別詳解

admin發表於2017-04-14

這兩個屬性比較類似,無論從表現形式還是語法結構上都是如此。

看如下程式碼:

[CSS] 純文字檢視 複製程式碼
/*outline屬性設定*/
outline-color: red; 
outline-width:1px;
outline-style:solid;
/*border屬性設定*/
border-color: red; 
border-width:1px;
border-style:solid;

兩個都是複合屬性,也可以採用如下形式書寫:

[CSS] 純文字檢視 複製程式碼
/*outline屬性設定*/
outline:1px solid red;
/*border屬性設定*/
border:1px solid red;

但是區別也是巨大的,下面就分別做一下介紹:

(1).border支援box-sizing: border-box,而outline不支援;outline支援outline-offset,border則不支援。

(2).outline不佔據空間,也就是他不會對盒模型產生影響,程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
* {
  padding: 0px;
  margin: 0px;
}
div {
  float:left;
  outline:20px solid red;
}
</style>
</head>
<body>
<div>螞蟻部落一</div>
</body>
</html>

可以看到元素的左上的outline被遮蓋,說明outline是不佔據空間的。

(3).outline常用於表單元素,比如表單元素獲得焦點的時候可以將其突出顯示;經常使用tab鍵的朋友可能有比較深的體會。

但是這並不是說outline只能用於表單元素。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
* {
  padding: 0px;
  margin: 0px;
}
input {
  outline-color:blue;
}
</style>
</head>
<body>
<input type="text">
</body>
</html>

當文字框獲取焦點的時候,outline就會顯示,這樣可以突出當前表單元素。

如果你不想讓表單元素顯示outline,只需要使用如下程式碼即可:

[CSS] 純文字檢視 複製程式碼
outline:none

相關文章