宽度 = 100% CSS 属性 在移动设备上不起作用。似乎视口的宽度错误
Width = 100% CSS property doesn't work on mobile. Seems like Viewport gets wrong Width
我最近推出了这个网站。在移动视图中,header 不会覆盖整个屏幕宽度,而是在右侧有一个边距。我找不到让它在桌面和移动设备上都能工作的解决方案。
这是视口设置
<meta name="viewport" content="width=device-width, initial-scale=1">
url是camisite.now.sh
这是我的 CSS,object 只是一个没有 class 的 header。
我尝试更改为 100vw,但大致相同。我认为 viewport-width 可能设置了错误的宽度。
@font-face{
font-family: songenia;
src:url("songenia.otf")
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
color: cornsilk;
}
body {
font-family: songenia;
font-size: xx-large;
background-image: url(background.jpg);
line-height: 1.2;
}
.input{
line-height: 1.6;
margin-top: 30px;
}
.posts {
list-style: none;
}
.onepost {
padding: 10px;
background: rgba(215, 177, 88, 0.548);
margin: 30px 0;
}
header {
background: rgba(215, 177, 88, 0.548);
padding: 2rem;
min-width: 100%;
text-align: center;
}
h1, h4 {
text-align: center;
}
.error-message {
text-align: center;
}
.input {
margin-top: 30px;
font-size: large;
}
main {
margin: auto;
width: 500px;
overflow: auto;
padding: 3rem 2rem;
}
.post-form {
padding: 2rem;
background:rgba(215, 177, 88, 0.548);
}
.post-form label {
text-align: center;
display: block;
}
.post-form input[type='text'] {
width: 100%;
padding: 8px;
margin-bottom: 10px;
border-radius: 5px;
color: black;
border: 1px solid #ccc;
}
.btn {
display: block;
width: 100%;
padding: 10px 15px;
border: 0;
background:rgba(25, 17, 68, 0.644);
color: #fff;
border-radius: 5px;
margin: 5px 0;
}
.btn:hover {
background: rgba(215, 177, 88, 0.548);
}
我现在明白你的问题了。这是因为您的 .post-form
的制作方式。在移动模式下,表单延伸超过视口。你有两个解决方案
1. 改变 .post-form
的行为
2.自适应header
的宽度
对于选项 1,在 styles.css:75 for main 中,规则是
main {
margin: auto;
width: 500px;
overflow: auto;
padding: 3rem 2rem;
}
500px 导致了你的问题,你可以去掉它。如果您的移动 phone 宽度小于 500px
,则 main
将 "spill out" 超过您的视口,而您的 header
不会这样做。它的宽度保持在视口宽度的 100%。
对于选项 2,您可以制定一个 CSS 规则,当屏幕小于 500px
时,宽度为 500px
@media only screen and (max-width: 500) {
header {
min-width: 500px;
}
}
我最近推出了这个网站。在移动视图中,header 不会覆盖整个屏幕宽度,而是在右侧有一个边距。我找不到让它在桌面和移动设备上都能工作的解决方案。
这是视口设置
<meta name="viewport" content="width=device-width, initial-scale=1">
url是camisite.now.sh
这是我的 CSS,object 只是一个没有 class 的 header。 我尝试更改为 100vw,但大致相同。我认为 viewport-width 可能设置了错误的宽度。
@font-face{
font-family: songenia;
src:url("songenia.otf")
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
color: cornsilk;
}
body {
font-family: songenia;
font-size: xx-large;
background-image: url(background.jpg);
line-height: 1.2;
}
.input{
line-height: 1.6;
margin-top: 30px;
}
.posts {
list-style: none;
}
.onepost {
padding: 10px;
background: rgba(215, 177, 88, 0.548);
margin: 30px 0;
}
header {
background: rgba(215, 177, 88, 0.548);
padding: 2rem;
min-width: 100%;
text-align: center;
}
h1, h4 {
text-align: center;
}
.error-message {
text-align: center;
}
.input {
margin-top: 30px;
font-size: large;
}
main {
margin: auto;
width: 500px;
overflow: auto;
padding: 3rem 2rem;
}
.post-form {
padding: 2rem;
background:rgba(215, 177, 88, 0.548);
}
.post-form label {
text-align: center;
display: block;
}
.post-form input[type='text'] {
width: 100%;
padding: 8px;
margin-bottom: 10px;
border-radius: 5px;
color: black;
border: 1px solid #ccc;
}
.btn {
display: block;
width: 100%;
padding: 10px 15px;
border: 0;
background:rgba(25, 17, 68, 0.644);
color: #fff;
border-radius: 5px;
margin: 5px 0;
}
.btn:hover {
background: rgba(215, 177, 88, 0.548);
}
我现在明白你的问题了。这是因为您的 .post-form
的制作方式。在移动模式下,表单延伸超过视口。你有两个解决方案
1. 改变 .post-form
的行为
2.自适应header
的宽度
对于选项 1,在 styles.css:75 for main 中,规则是
main {
margin: auto;
width: 500px;
overflow: auto;
padding: 3rem 2rem;
}
500px 导致了你的问题,你可以去掉它。如果您的移动 phone 宽度小于 500px
,则 main
将 "spill out" 超过您的视口,而您的 header
不会这样做。它的宽度保持在视口宽度的 100%。
对于选项 2,您可以制定一个 CSS 规则,当屏幕小于 500px
@media only screen and (max-width: 500) {
header {
min-width: 500px;
}
}