2017-05-31 24 views
1

所以我有這樣的代碼:如何在css中創建不改變大小的邊框?

<h1 id="result" style="color:black; font-family: Bradley Hand; font-size:50px; position:absolute; top:17%; left:60%"> 
    text 
</h1> 

我怎樣才能讓一個邊界,如果我把一個較長的文字,我的邊框將保持其位置,並改變其大小,以使我的文字仍然在邊境?謝謝!

+0

我不確定我是否理解了你的問題......只需添加'border'屬性即可實現你正在解釋的行爲。如果目前的答案不是你正在尋找的,也許你可以試着重述這個問題。 – Danziger

回答

1

只是增加border: 1px solid black(例如)到你有什麼工作完全正常。該h1元素將擴大和縮小,以適應它的內容和邊框會也這樣做:

const result = document.getElementById('result'); 
 
const sentence = "HELLO! IT LOOKS LIKE THIS IS WORKING FINE..."; 
 

 
let index = 0; 
 

 
setInterval(() => { 
 
    index = (index % sentence.length) + 1; 
 

 
    result.innerHTML = sentence.slice(0, index); 
 
}, 250);
#result { 
 
    position:absolute; 
 
    top: 10%; 
 
    left: 10%; 
 
    padding: 0 .5rem; 
 
    font-family: Sans-Serif; 
 
    font-size: 2rem; 
 
    line-height: 3rem; 
 
    color: black; 
 
    border: 3px solid black; 
 
    border-radius: 3px; 
 
    min-height: 3rem; 
 
}
<h1 id="result"></h1>

無論如何,我懷疑你可能是指邊界更改元素的尺寸:

#bar1 { 
 
    width: 50%; 
 
    height: 1rem; 
 
    background: red; 
 
    margin: .25rem; 
 
} 
 

 
#bar2 { 
 
    width: 50%; 
 
    height: 1rem; 
 
    background: cyan; 
 
    margin: .25rem; 
 
    border: 3px solid black; 
 
}
<div id="bar1"></div> 
 
<div id="bar2"></div>

那因爲默認情況下,元素的widthheight實際上是指定的widthheight屬性的總和,加上padding加上border,正如您從上面的示例中看到的那樣。

如果是這樣的話,你有兩個選擇,以保持公正與widthheight指定的尺寸:

  • 使用box-sizing: border-box。這將使填充和邊框包含在元素的總寬度和高度中。

  • 使用box-shadow而不是border。您可以使用inset屬性將陰影繪製到元素的內部而不是外部。

#bar1 { 
 
    width: 50%; 
 
    height: 1rem; 
 
    background: red; 
 
    margin: .25rem; 
 
} 
 

 
#bar2 { 
 
    width: 50%; 
 
    height: 1rem; 
 
    background: cyan; 
 
    margin: .25rem; 
 
    border: 3px solid black; 
 
    box-sizing: border-box; 
 
} 
 

 
#bar3 { 
 
    width: 50%; 
 
    height: 1rem; 
 
    background: yellow; 
 
    margin: .25rem; 
 
    box-shadow: inset 0 0 0 3px black; 
 
} 
 

 
#bar4 { 
 
    width: 50%; 
 
    height: 1rem; 
 
    background: lime; 
 
    margin: .25rem; 
 
    box-shadow: 0 0 0 3px black; 
 
}
<div id="bar1"></div> 
 
<div id="bar2"></div> 
 
<div id="bar3"></div> 
 
<div id="bar4"></div>

注意第4條中,一個與外box-shadow看起來更大,但如果你檢查它,它的尺寸完全一樣,那些在其他3個酒吧。

+0

非常感謝! –

0

你能直接添加border: solid 1px black;style屬性嗎?

<h1 id="result" style="border: solid 1px black; color:black; font-family: Bradley Hand; font-size:50px; position:absolute; top:17%; left:60%">text</h1>

小提琴:https://jsfiddle.net/myingling/LL57yd8j/

下面是關於CSS邊框一些閱讀:https://www.w3schools.com/css/css_border.asp

+0

不錯,但我的意思是邊框的大小保持defalut。但是,如果文字較長,則邊框會使文字變小。這就是我所迷惑的。 –