编辑:我在下面发布了这个问题的答案。
我的元素使用 20 行 20 列的 css 网格布局(每个单元格占屏幕的 5%)。其中一个页面在电子邮件和密码输入框上方居中显示了一行文本,输入框也居中显示。整个区域包含在 css 网格单元 8-14 和网格行 6-19 中,居中是通过 padding-left 完成的。
我的问题是,如果我打开 Firefox 书签,书签弹出面板会导调用子邮件和密码框上方的线条向右移动,而不是在电子邮件和密码框上方居中 - 换句话说,它没有响应显示书签面板。 (我使用的是 Firefox 64,但同样的事情发生在早期的 FF 版本中)。
相关CSS代码:
.mktg_text {
font-family: CamphorW01-Thin, sans-serif;
font-size: 13pt;
color: rgb(175, 222, 162);
line-height: 1.5;
}
.EMail_Pwd {
font-family: CamphorW01-Thin, sans-serif;
font-size: 14pt;
}
相关html代码:
<div class="mktg_text" style="padding-left: 5%">Thirty three characters of text go h<br></div>
<div class="mktg_text" style="padding-left: 0%; color: rgb(175,222,162);"> Forty-one characters of text go here Forty</div>
<div class="mktg_text" style="padding-left: 8%"><span style="color: rgb (175,222,162);">Thirty characters of text go h</span></div>
<div class="mktg_text" style="padding-left: 16.5%">Sixteen characte</div> <br><br><br><br>
<form name='myform' id='myform'>
<div class="EMail_Pwd">
<input type="text" class="signup_join" autofocus placeholder="Your email address" id="email_field" name="email_field" style="width:55%;" required>
</div>
<div class="EMail_Pwd">
<input type="password" onfocus="OnFocusFn(1)" placeholder="Your password 8 characters minimum" class="signup_join" minlength="8" id="passwd" name="passwd" style="width:55%;" required></div>
</form>
<button class="btn_joinnow" id="btn_joinnow" style="margin-left: 12%; color:rgb(255,255,255)" onfocus="OnFocusFn(2)" onclick="ProcessJoinForm(1)">Join Seventy Now </button>
<br><br><br>
<div class="agree_02" style="padding-left: 6%;">By joining you agree to our</div>
<div class="agree_03"><a href="#" class="button_joinform3" style="text-decoration: none;" onclick="ShowTermsOfSvc()">Terms of Use</a></div><br>
<div class="agree_02" style="padding-left: 9%">Already joined? Please </div>
<div class="agree_03"><a href="#" class="button_joinform3" style="text-decoration: none;" onclick="ShowForm(3)">Sign In Here</a></div><br><br>
<br><br><br><br>
<script type="text/javascript">
document.myform.email_field.focus();
</script>
<script type="text/javascript">
function OnFocusFn(call) {
if (call == 1) {
document.getElementById("passwd").style.borderColor = "rgb (175,222,162)";
}
if (call == 2) {
document.getElementById("btn_joinnow").style.borderColor = "rgb (175,222,162)";
}
}
</script>
<script type="text/javascript">
function ShowTermsOfSvc() {
var elemX = document.getElementById("TOU");
elemX.style.color = "rgb(175,222,162)";
var elemY = document.getElementById("button_01_Hidden");
elemY.style.color = "rgb(100,100,100)";
console.log(elemY);
ShowLeftLinks();
}
</script>
当我打开 Firefox 书签弹出面板时,电子邮件和密码框会缩小,这可能是打开书签面板时上面的文本没有正确对齐的原因。
所以我的问题是:当书签面板打开时,为什么电子邮件和密码框上方的文本行没有正确居中?电子邮件和密码框是否会干扰响应? Firefox 中的书签弹出面板是否会导致响应式设计出现此问题?是因为文本使用填充居中吗?
其他页面都没有 Firefox 书签弹出窗口的响应问题,但这是唯一一个所有内容都以使用填充的 css 网格区域为中心的页面。
这是一个更大元素的一部分,所以我发布了它,因为它现在没有可重现的示例,希望有人能通过发布的代码知道这个问题的答案。我可以制作一个完整的示例,但这样做需要一些时间,所以如果没有人可以用上面发布的代码回答,那么我将不得不这样做。谢谢。
最佳答案
不要使用填充来构造列和行,而是考虑使用 Flexbox。
您可以像这样创建列和行:
flex-direction: column | column-reverse | row | row-reverse;
它可以快速解决布局问题,几乎没有复杂性,并且受到所有现代浏览器的支持。
关于html - Firefox 书签面板改变响应式 css 网格设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872849/