html - Firefox 书签面板改变响应式 css 网格设计

标签 html css firefox css-grid

编辑:我在下面发布了这个问题的答案。

我的元素使用 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?&nbsp;&nbsp;Please&nbsp;</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;

它可以快速解决布局问题,几乎没有复杂性,并且受到所有现代浏览器的支持。

Here is a complete guide to Flexbox .

Here is the list of browsers that support Flexbox .

关于html - Firefox 书签面板改变响应式 css 网格设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872849/

相关文章:

c# - .cs 页面上的 html 按钮

javascript - 将 div 与 html 中的类分开以供脚本使用

html - 动态大小的 html 视频,其正下方有元素

css - Canvas 剪切蒙版定位问题

firefox - 通过 HTTPS 的 Firefox 上的灰色三角形

javascript - Firefox 是否会阻止来自本地文件的 ajax 请求甚至被发送出去

javascript - 如何单击按钮 ID 并在具有相同 ID 的 div 上进行更改?

javascript - 当 phonegap 版本从 1.5 更新到 1.9 时,android 中的 Phonegap 应用程序导致强制关闭

css - 视网膜和非视网膜 ios 应用程序

css - Firefox 意外换行使用 float 和溢出隐藏