英文:
Cut borders in html
问题
我正在尝试创建一个小容器来显示一些消息,但如您在示例中所见,它在两侧被裁切了。
我的HTML和CSS如下:
.mensajes{
position: absolute;
max-height: 7%;
width: 40%;
margin-left: 12%;
padding: 0.25%;
z-index: 2;
overflow: auto;
display: grid;
align-items: center;
justify-items: center;
background-color: #111111a6;
border-radius: 0 0 5px 5px;
}
.mensaje{
position: relative;
width: 95%;
padding: 5px;
margin-top:2%;
margin-bottom: 2%;
height: fit-content;
background-color: #9a9999bc;
border-radius: 5px;
}
<div id="mapa" class="mapa">
<div class="mensajes" id="mensajes"></div>
<div class="coordenadas">
<b id="latitud" style="color: blue;"></b><br>
<b id="longitud" style="color: red;"></b>
</div>
</div>
<script>
msgsBox = document.getElementById("mensajes")
mensaje = document.createElement("div")
mensaje.classList.add("mensaje")
mensaje.textContent= "未检测到GPS,请检查您的连接"
mensaje.style.backgroundColor = "#FF5733B3"
mensaje.style.color = "#E8E8E8"
msgsBox.appendChild(mensaje)
msgsBox.scrollTop = msgsBox.scrollHeight
</script>
在HTML中,“mapa”使用display:flex
并占据屏幕左半部分。
编辑:
根据评论中的建议更新了代码,感谢大家,现在它可以正常工作。
英文:
I am trying to make a little container to show some messages but it gets cut on the sides as you can see on the example.
My HTML and CSS are this:
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-css -->
.mensajes{
position: absolute;
max-height: 7%;
width: 40%;
margin-left: 12%;
padding: 0.25%;
z-index: 2;
overflow: auto;
display: grid;
align-items: center;
justify-items: center;
background-color: #111111a6;
border-radius: 0 0 5px 5px;
}
.mensaje{
position: relative;
width: 95%;
padding: 5px;
margin-top:2%;
margin-bottom: 2%;
height: fit-content;
background-color: #9a9999bc;
border-radius: 5px;
}
<!-- language: lang-html -->
<div id="mapa" class="mapa">
<div class="mensajes" id="mensajes"></div>
<div class="coordenadas">
<b id="latitud" style="color: blue;"></b><br>
<b id="longitud" style="color: red;"></b>
</div>
</div>
<script>
msgsBox = document.getElementById("mensajes")
mensaje = document.createElement("div")
mensaje.classList.add("mensaje")
mensaje.textContent= "No GPS detected, check your connection"
mensaje.style.backgroundColor = "#FF5733B3"
mensaje.style.color = "#E8E8E8"
msgsBox.appendChild(mensaje)
msgsBox.scrollTop = msgsBox.scrollHeight
</script>
<!-- end snippet -->
In the HTML "mapa" uses display:flex
and ocupies the left half of the screen.
EDIT:
Updated the code to include the suggestions given in the comments, thanks to all, it works now.
答案1
得分: 0
在.mensajes
上使用内部填充。您总是希望在文本的左右两侧添加大约33%的额外填充,以便均匀地框定它。
.mensajes {
width: 40%;
margin-left: 12%;
padding: 0.5em 1.5em; /* 添加内部填充,左右比上下多33% */
display: flex;
align-items: center;
justify-content: center;
background-color: #111111a6;
border-radius: 0 10px 10px;
}
请注意,我已经在 .mensajes
类的 padding
属性中添加了内部填充的更改,使左右填充比上下填充多了33%。
英文:
Use inner padding on .mensajes
. You always want to add about 33% more padding to the left and right of text compared to the top, in order to frame it evenly.
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-css -->
.mensajes
{
width: 40%;
margin-left: 12%;
padding: 0.5em;
display: flex;
align-items: center;
justify-content: center;
background-color: #111111a6;
border-radius: 0 10px 10px;
}
.mensaje
{
width: 95%;
padding: 6px 8px;
background-color: maroon;
color: #fff;
border-radius: 5%;
}
<!-- language: lang-html -->
<div id="mapa" class="mapa">
<div class="mensajes" id="mensajes">
<div class="mensaje">
The text goes here
</div>
</div>
<div class="coordenadas">
<b id="latitud" style="color: blue;"></b><br>
<b id="longitud" style="color: red;"></b>
</div>
</div>
<!-- end snippet -->
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论