首頁 web前端 css教學 css負外邊距是什麼? css負外邊距的作用(詳解)

css負外邊距是什麼? css負外邊距的作用(詳解)

Sep 19, 2018 am 11:59 AM
css

本章帶給大家css負外邊距是什麼? css負外邊距的作用(詳解),帶大家看看css負外邊距有什麼作用。有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

負邊距介紹

負邊距的使用如下:

#content {margin-left:-100px;}
登入後複製

負邊距通常在小範圍內使用。但是接下來你會看到,它能做的事情很多。以下是一些你應該知道的關於負邊距的事情:

他們是完全有效的CSS
這不是在跟你開玩笑。 W3C甚至都說,在外邊框中使用負邊距是允許的。

負邊距不是在hack
這是尤其正確的。正是因為沒有很好地了解負邊距才是導致各種奇怪的問題。只有在被用來解決其他地方的bug的時候才是hack

它符合正常的文檔流
當負邊距使用在沒有浮動的元素上時並不會破壞正常的文檔流。所以付過你使用負邊距把元素向上微調的話,所有後面的元素也會向上微調。

它是相當好的兼容性
負邊距基本上被所有現代的瀏覽器支援(IE6的大部分情況也是)

當使用了float之後,會有不同的表現
負邊距不是你平常使用的屬性,所以使用的時候要格外小心。

Dreamweaver不理解它
負邊距不會在DW的設計視窗顯示出效果。那你為什麼還要用DW的設計視窗查看效果呢?與其共事呢?

負邊距如果可以正確的使用的話它的功能是很強大的。有兩種場景負邊距是很重要的。

在static元素中使用負邊距:

css負外邊距是什麼? css負外邊距的作用(詳解)

#一個static元素是沒有使用過float的元素。上面的圖片顯示了一個static的元素使用負邊距之後的情況。

當一個static元素在top/left使用負邊距時,它把元素朝這個特定的方向拉,例如

/* Moves the element 10px upwards */
#mydiv1 {margin-top:-10px;}
登入後複製

但是當你將負邊距設定為相對bottom/ right時,它並不會把元素向下或右拉,相反,它會把後面的元素往裡面拉,從而覆蓋自己。

/*
所有在#mydiv1后面的元素都会向上
移动10px,而#mydiv1一点都不会移动
*/#mydiv1{margin-bottom:-10px;}
登入後複製

如果寬度沒有設置,左右負邊距會把元素往兩個方向拉以增加寬度。這裡margin的作用相當於padding
在浮動中使用負邊距

加入下面就是我們的html程式碼:

<div id="mydiv1">First</div>
<div id="mydiv2">Second</div>
登入後複製

如果對一個浮動的元素使用負邊距,它會產生一個空白,其他元素可以覆蓋這一部分。這個技巧可以很好地用戶流式佈局。例如有一列寬度100%,另一列有固定的寬度,比如說100px。

#mydiv1 {float:left; margin-right:-100px;}
登入後複製

如果兩個元素都使用了左浮動並且設定margin-right:-20px。 #mydiv2會把#mydiv1看成寬度縮小20px(所以會覆蓋一部分),但是有趣的是#mydiv1並不會有任何變化,而是仍然保持原先的寬度。
如果負邊距和寬度一樣大的話,它就會被完全覆蓋掉。因為外邊距,內邊距,邊框和內容加起來等於元素的寬度。如果負外邊距等於元素的寬度的話,那麼該元素的寬度就會變成0px。
學以致用

既然我們知道使用負邊距在CSS2中是有效的,使用它可以給我們提供一些非常有趣的CSS技巧

把單一清單變成三列

如果你有一個清單垂直方向太長了,為什麼不把它分成幾列呢?負邊距可以讓你在不增加任何浮動和標籤的情況下完成。你會發現用負邊距實現這個是多麼地簡單,就像下面:

HTML:

<ul>
<li class="col1">Eggs</li>
<li class="col1">Ham<li>
<li class="col2 top">Bread<li>
<li class="col2">Butter<li>
<li class="col3 top">Flour<li>
<li class="col3">Cream</li>
</ul>
登入後複製

CSS

ul {list-style:none;}
li {line-height:1.3em;}
.col2 {margin-left:100px;}
.col3 {margin-left:200px;}
.top {margin-top:-2.6em;} /* the clincher */
登入後複製

透過對.top的新增margin-top :-2.6em。所有的元素會完美的對齊好。使用負邊距會比使用相對定位好很多,因為你只需要給新的一列的第一個元素添加負邊距。

重疊來強調

css負外邊距是什麼? css負外邊距的作用(詳解)

故意重疊元素也是一個很好地設計隱喻。重疊效果可以增強深度感從而為突顯特定元素。一個很好地例子就像上圖一樣,透過重疊來吸引註意力。只需要使用z-index屬性和一點小創意你就可以做到。

驚豔的3D文字效果

css負外邊距是什麼? css負外邊距的作用(詳解)

#

这是一个精致的技巧。通过使用两个视图的两种颜色创建safari一样有点倾斜的效果。然后通过负边距来把其中一个叠加到另一个上面,保持1到2像素的偏移。这样你就可以二道可选的,机器友好的倾斜字体。就不需要浪费很多贷款来加载大的图片来实现这个效果啦

简单的两列布局

负边距也是在流式布局中创建简单一列宽度固定,一列内容为宽度的100%的两列布局的好方法。

HTML

<div id="content"> <p>Main content in here</p> </div>
<div id="sidebar"> <p>I’m the Sidebar! </p> </div>
登入後複製

CSS

#content {width:100%; float:left; margin-right:-200px;}
#sidebar {width:200px; float:left;}
登入後複製

哈哈,这样你就得到了一个简单的两列布局。它也能在IE6完美的渲染出来。现在为了让#sidebar不要被#content给掩盖,只要简单的加上:

/* Prevent text from being overlapped */
#content p {margin-right:210px;}
/* It’s 200px + 10px, the 10px being an additional margin.*/
登入後複製

当适当的使用的时候,负外边距能够提供一个灵活的文档结构,完爆table的布局。灵活的文档布局是一种可访问性和SEO的技巧,通过它能够让你根据你的关注点以任意顺序组织你的html代码。这里有一个文章讨论了负边距在多列布局中的应用。

微调元素

这是负外边距最常也是最简单的使用方式。假如你把第十个div插入到9个其他的div中,不知道什么原因没有正确的排列,使用负边距来调整这个div就不需要改变其他9个div了,很方便。

解决bug

文本和链接问题

在float中使用负边距可能会在旧的浏览器造成一些问题,比如下面的这些:

让链接不可点击
文本变得很难选择
失去焦点的时候按tab键失效

解决方法:只要添加position:relative,就可以啦。

图片被剪切啦

如果你运气不好刚好在办公室使用IE6,当遇到覆盖和浮动的时候内容有些时候回突然被剪切掉。

解决方法:同样的只要给浮动元素加上position:relative,所有的问题就解决啦。

结论

负外边距能够在不使用任何额外标签的情况下定位元素让它在现在网页设计中占有一席之地。随着更多的用户使用更新的浏览器(包括IE8),未来使用这些技巧的网站会变得更加有前景。

以上是css負外邊距是什麼? css負外邊距的作用(詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

See all articles