2010-10-17 64 views
17

我有兩個div,一個在左邊,另一個在右邊。現在我想把這兩個div分隔開來。但全高的邊界看起來很糟糕。如何控制邊界高度?

我想控制邊框的高度。我怎麼能這樣做?

回答

31

邊框將始終位於包含框的整個長度(元素的高度加上其填充),除調整要應用的元素的高度外,無法控制邊框。如果你需要的是一個垂直分隔線,你使用:

<div id="left"> 
    content 
</div> 
<span class="divider"></span> 
<div id="right"> 
    content 
</div> 

用CSS:

span { 
display: inline-block; 
width: 0; 
height: 1em; 
border-left: 1px solid #ccc; 
border-right: 1px solid #ccc; 
} 

Demo at JS Fiddle,調整span.container的高度調整邊框 '高度'。

或者,要使用僞元素(::before::after),給出下面的HTML:

<div id="left">content</div> 
<div id="right">content</div> 

下面的CSS任何div元件是另一div元件的相鄰的兄弟之前增加了一個僞元素:

div { 
    display: inline-block; 
    position: relative; 
} 

div + div { 
    padding-left: 0.3em; 
} 

div + div::before { 
    content: ''; 
    border-left: 2px solid #000; 
    position: absolute; 
    height: 50%; 
    left: 0; 
    top: 25%; 
} 

JS Fiddle demo

+1

小提琴已經擅離職守 – Neil 2013-06-11 09:45:27

+0

更好地使用:後 – 2014-07-28 21:20:31

+1

@scott:是的,他們最初未被使用的唯一原因是因爲我不認爲我知道之前的':: before'或':: after'僞元素。一旦我回到電腦而不是移動電話,我會嘗試修改這個想法。 – 2014-07-28 22:59:02

0

我想控制邊框的高度。我怎麼能這樣做?

你不行。 CSS邊框將始終跨越元素的整個高度/寬度。

一個解決方法的想法是使用絕對定位(可以接受百分比值)將邊界攜帶元素放置在兩個div中的一箇中。爲此,您必須製作元素position: relative

1

不壞..但嘗試這樣的產品......(應該適用於所有,但IST只是-webkit含稅)

<br> 
<input type="text" style=" 
    background: transparent; 
border-bottom: 1px solid #B5D5FF; 
border-left: 1px solid; 
border-right: 1px solid; 
border-left-color: #B5D5FF; 
border-image: -webkit-linear-gradient(top, #fff 50%, #B5D5FF 0%) 1 repeat; 
"> 

//隨意編輯和添加其他所有瀏覽器..

8

使用line-height

line-height: 10px; 

只有enter image description here

1

我只是在找這個......通過使用大衛的回答,我用了一段時間,並給了它一些填充(高度將不起作用+頂邊的問題)......像魅力一樣工作;

fiddle

<ul> 
    <li><a href="index.php">Home</a></li><span class="divider"></span> 
    <li><a href="about.php">About Us</a></li><span class="divider"></span> 
    <li><a href="#">Events</a></li><span class="divider"></span> 
    <li><a href="#">Forum</a></li><span class="divider"></span> 
    <li><a href="#">Contact</a></li> 
</ul> 

.divider { 
    border-left: 1px solid #8e1537; 
    padding: 29px 0 24px 0; 
}