[英]text-align: center is not working properly?
我使用 javascript 來更改 div,但在更改 div 后, h2
的樣式將不再與中心對齊。
HTML:
<div id="land" ontouchend="changepage()">
<h1 id="headersize">Fish Pals</h1>
<div id="landingimage"></div>
<h1 id="headersize">Tap Me To Learn About Freshwater Aquarium Fish</h1>
</div>
<div id="items">
<h2 id="center">Aquarium Fish</h2>
</div>
id #center
用於將文本與文本對齊居中居中,我曾嘗試使用span
將樣式放入其中,但它不會居中
@media screen and (min-width: 375px){
h2 {
font-size: 80px;
font-family: lemon;
padding: 0px;
margin: 0px;
}
#center {
text-align: center;
}
#items {
display: grid;
grid-template-columns: 50px 1fr 50px;
grid-column-start: 2;
display: none;
position: absolute;
}
}
javascript 工作正常。 JavaScript:
<script type="text/javascript">
function changepage(){
var land = document.getElementById('land');
land.style.display = 'none';
var items = document.getElementById('items');
items.style.display = 'inline';
}
</script>
您的#items
被定位為absolute
,它隱式地計算其及其子項的寬度。 為了使文本居中,該文本的容器需要跨越 100% 的可用空間。 下面是一個固定的片段。 我還將ontouchend
更改為onclick
以便於測試,但請隨時將其更改回來。
另外,不確定您要通過網格實現什么目標。
function changepage(){ var land = document.getElementById('land'); land.style.display = 'none'; var items = document.getElementById('items'); items.style.display = 'grid'; }
@media screen and (min-width: 375px){ h2 { font-size: 80px; font-family: lemon; padding: 0px; margin: 0px; } #center { text-align: center; } #items { /* display: grid; grid-template-columns: 50px 1fr 50px; grid-column-start: 2; */ display: none; position: absolute; width: 100%; } }
<div id="land" onclick="changepage()"> <h1 id="headersize">Fish Pals</h1> <div id="landingimage"></div> <h1 id="headersize">Tap Me To Learn About Freshwater Aquarium Fish</h1> </div> <div id="items"> <h2 id="center">Aquarium Fish</h2> </div>
您的 Javascript 將display: inline
應用於#items
。 但是作為內聯元素,它只會與其內容一樣寬 - 在這種情況下,與h2
的文本一樣寬,因此text-align: center
在該文本上不會產生任何影響。 您可能應該將其更改為display: block
,默認為 100% 寬度。
此外, #items
的絕對位置可能會將其置於不需要的位置(但我們需要有關其他元素的 CSS 的更多信息以了解更多相關信息)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.