我试着看了一些其他问题,这些问题都存在相似的相似问题,但尚未找到解决方案。

因此,只需设置一个非常基本的网页即可进行测试/发送消息。您可以在这里找到它https://gogglebot.net/test/test/我无法包含MWE,因为将其剥离为仅标题即可使其正常工作,因此我将整个内容放在最后。
我不会为可怕的颜色或默认字体表示歉意。

我有一个页眉,然后向左浮动2个div作为侧边栏,然后是主体。在某个时候出现了水平滚动条,我不知道为什么。为了解决此问题,我尝试将所有设置为100vw。

我仍然对发生的事情一无所知,将它逐段放回去,向我展示了它的侧边栏出于某种原因满足了生日的愿望,但我不知道为什么会导致这种情况。侧栏+主体小于100%。我从another question中找到了一些代码来检查视口宽度以上的元素,但没有返回任何内容。在Chrome的检查工具中,我看不到太大的东西,只是宽度为100%的页眉超出了屏幕。

奇怪的是,如果我将侧边栏设置为100%,它也会过度扩展到相同的数量,但仍然会说其1366像素宽(这是期望值)(笔记本电脑)

在Edge中获得相同的结果。



<html>

<head>
  <style>
    body,
    html {
      margin: 0;
      width: 100vw;
    }

    #header {
      /*width:100%;*/
      /* This makes no difference */
      height: 50px;
      background-color: DodgerBlue;
      /*margin:auto;*/
      border-bottom: 1px solid black;
    }

    #headtitle {
      /*position: absolute;
        transform: translate(0%, -50%);*/
      /* bad */
      line-height: 50px;
      /* better? */
      margin: 0;
      width: 20%;
      /* checking this isn't a culprit of too-wide-header */
    }

    #sidebar {
      float: left;
      margin: 0px;
      padding: 5px;
      width: 15%;
      height: 100%;
      border-right: 1px solid black;
      background-color: #b4b4b4
    }

    #main {
      float: left;
      padding: 7px;
      margin: 0px;
      width: 80%;
    }

    .sideitem {
      background-color: #b4b4c5;
      margin-top: 5px;
      margin-bottom: 5px;
      height: 20pt;
      line-height: 20pt;
      transition-duration: 1s;
      padding-left: 5px;
    }

    .sideitem:hover {
      background-color: #787878;
      padding-left: 40%;
    }
  </style>
  <title>Sidebars are easy</title>
</head>

<body>
  <div id="header">
    <h1 id="headtitle">header</h1>
  </div>


  <div id="sidebar">
    <a href=''>
      <div class='sideitem'><span class='sidetext'>Side 1 </span></div>
    </a>
    <a href=''>
      <div class='sideitem'><span class='sidetext'>Side 2 </span></div>
    </a>
    <a href=''>
      <div class='sideitem'><span class='sidetext'>Side 3 </span></div>
    </a>
  </div>

  <div id="main">
    <h1>Main page!</h1>
    <br>
    <ol>
      <li>sidebars are easy</li>
      <li>So easy that this guy</li>
      <li>Who hasn't even got a computer science degree</li>
      <li>Figured it out in like <strike>20 minutes</strike> 3 hours</li>
    </ol>
    <br> Pretty good!
    <br>
    <span class="heart"><3</span>
  </div>

</body>

</html>

最佳答案

对于简短的简单修复,只需添加

overflow-x:hidden;


到您的身体或父容器。这将删除所有水平滚动。

就您而言,只需像这样更改body / html CSS



<html>

<head>
  <style>
    body,
    html {
      overflow-x:hidden;
      margin: 0;
      width: 100vw;
    }

    #header {
      /*width:100%;*/
      /* This makes no difference */
      height: 50px;
      background-color: DodgerBlue;
      /*margin:auto;*/
      border-bottom: 1px solid black;
    }

    #headtitle {
      /*position: absolute;
        transform: translate(0%, -50%);*/
      /* bad */
      line-height: 50px;
      /* better? */
      margin: 0;
      width: 20%;
      /* checking this isn't a culprit of too-wide-header */
    }

    #sidebar {
      float: left;
      margin: 0px;
      padding: 5px;
      width: 15%;
      height: 100%;
      border-right: 1px solid black;
      background-color: #b4b4b4
    }

    #main {
      float: left;
      padding: 7px;
      margin: 0px;
      width: 80%;
    }

    .sideitem {
      background-color: #b4b4c5;
      margin-top: 5px;
      margin-bottom: 5px;
      height: 20pt;
      line-height: 20pt;
      transition-duration: 1s;
      padding-left: 5px;
    }

    .sideitem:hover {
      background-color: #787878;
      padding-left: 40%;
    }
  </style>
  <title>Sidebars are easy</title>
</head>

<body>
  <div id="header">
    <h1 id="headtitle">header</h1>
  </div>


  <div id="sidebar">
    <a href=''>
      <div class='sideitem'><span class='sidetext'>Side 1 </span></div>
    </a>
    <a href=''>
      <div class='sideitem'><span class='sidetext'>Side 2 </span></div>
    </a>
    <a href=''>
      <div class='sideitem'><span class='sidetext'>Side 3 </span></div>
    </a>
  </div>

  <div id="main">
    <h1>Main page!</h1>
    <br>
    <ol>
      <li>sidebars are easy</li>
      <li>So easy that this guy</li>
      <li>Who hasn't even got a computer science degree</li>
      <li>Figured it out in like <strike>20 minutes</strike> 3 hours</li>
    </ol>
    <br> Pretty good!
    <br>
    <span class="heart"><3</span>
  </div>

</body>

</html>

关于html - 尽管宽度为100%,机身为100vw,但 header 仍比屏幕宽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55930063/

10-10 21:26