2013-10-25 87 views
2

我有文本和<hr>在div中垂直交替,並且我將padding-left添加到了div,但我不希望單詞之間的水平規則受到填充的影響。如何在div中的元素上使用忽略填充

有沒有辦法排除他們?

.menuoptions { 
    height:30px; 
    width:225px; 
    color:#666; 
    line-height:30px; 
    font-weight:bold; 
    padding-left:10px; 
} 

我試圖.menuoptions hr {...},並添加否定填充,但沒有太大的驚喜,但沒有奏效。

例子:Fiddle

+1

你真的應該使用合適的菜單'UL/li'結構,然後用'邊境bottom' –

+0

我可能給一個去,看看它是如何工作的 – SaturnsEye

回答

3

你不能排除它們本身,而負填充是一個沒有沒有,但你可以使用切緣陰性的<hr>

See updated fiddle

+0

啊,我太親近了!爲什麼它可以用於負邊距而不是填充? – SaturnsEye

+0

你可能想看看http://stackoverflow.com/q/4973988/1741542 –

+1

只是因爲盒子模型的性質;填充物將內容物進一步推入箱內,遠離內邊緣(基本上是箱本身的一部分),而邊緣則將箱內的其他內容推離外邊緣。如果你這樣想,負面填充毫無意義:)關於盒子模型的更多信息,可以在[css-tricks.com](http://css-tricks.com)上看到這篇文章(http://css-tricks.com/the -CSS盒模型/)。 –

1

你可以只使用負margin-left

.menuoptions hr { 
    margin-left: -10px; 
} 

JSFiddle

0
.menuoptions hr { 
margin-left:-10px 
} 
1

那是因爲你還沒有自定義的復位屬性。像<p>,<input>等默認情況下有一些填充和邊距,當您添加一個屬性時,它相應地填充。

在跨瀏覽器的這種不一致的情況下,我建議你使用一個CSS復位可能Eric Mayer Reset

這將規範所有的差異,並應在所有瀏覽器均勻一致性使您的網頁。

驗證碼:

/* http://meyerweb.com/eric/tools/css/reset/ 
    v2.0 | 20110126 
    License: none (public domain) 
*/ 

html, body, div, span, applet, object, iframe, 
h1, h2, h3, h4, h5, h6, p, blockquote, pre, 
a, abbr, acronym, address, big, cite, code, 
del, dfn, em, img, ins, kbd, q, s, samp, 
small, strike, strong, sub, sup, tt, var, 
b, u, i, center, 
dl, dt, dd, ol, ul, li, 
fieldset, form, label, legend, 
table, caption, tbody, tfoot, thead, tr, th, td, 
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary, 
time, mark, audio, video { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    font-size: 100%; 
    font: inherit; 
    vertical-align: baseline; 
} 
/* HTML5 display-role reset for older browsers */ 
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section { 
    display: block; 
} 
body { 
    line-height: 1; 
} 
ol, ul { 
    list-style: none; 
} 
blockquote, q { 
    quotes: none; 
} 
blockquote:before, blockquote:after, 
q:before, q:after { 
    content: ''; 
    content: none; 
} 
table { 
    border-collapse: collapse; 
    border-spacing: 0; 
} 

希望這有助於。

+0

感謝彌敦道,我會讓一定要在將來使用 – SaturnsEye

+0

歡迎:) - @Adsy – Nitesh

+0

仍然沒有回答這個問題,雖然 – epoch

0

或者您可以使用一個ul,這將是正確的方式做到這一點:

<ul> 
    <li>Firewalls</li> 
    <li class="sep"></li> 
    <li>Security In Education</li> 
    <li class="sep"></li> 
    <li>SSL VPN Encryption</li> 
    <li class="sep"></li> 
    <li>Wireless Access Points</li> 
</ul> 

CSS:

ul { 
    list-style:none; 
    margin:0; 
    padding:0; 
    color:#666; 
    font-weight:bold; 
    width: 300px; 
} 
ul > li { 
    padding:5px; 
} 
ul > li.sep { 
    height:1px; 
    border-bottom: 1px solid #aaa; 
    padding:0; 
} 

fiddle