【问题标题】:My width is bigger than my screen, but body and html are set to 0 padding and margin and 100% width我的宽度比我的屏幕大,但 body 和 html 设置为 0 padding 和 margin 和 100% 宽度
【发布时间】:2017-10-24 02:51:41
【问题描述】:

删除引导程序后,我遇到了这个问题,我的页面宽度大于屏幕,因此有一个水平滚动条。我认为将 body、html 设置为 0 padding 和 margin 以及 100% 宽度就可以了,但问题仍然存在..

解决方案编辑:我的图像比视图更宽,因此我需要设置 box-sizing: border-box 以包含父级中的图像。然后我为所有元素继承了这个。所以现在我的 CSS 的顶部是:

body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

* {
    box-sizing: inherit;
}

html:

@{
    ViewBag.Title = "Home Page";
}
<div class="main">
    <div class="content">
        <div id="welcome" class="page">
            <h1>asasd</h1>
            <p>
                test3
            </p>
        </div>
        <div id="asdasd" class="page" data-original="/Images/asdh.jpg">
            <h1>asdasd</h1>
            <p>
                test2
            </p>
            <div class="vfd"></div>
            <div class="measurment"></div>
        </div>
        <div id="test2" class="page" data-original="/Images/test.jpg">
            <h1></h1>
            <p>test
            </p>
        </div>
    </div>
</div>

CSS:

body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}

.main {
    width: 100%;
    height: 100%;
}

.content {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    height: 300vh;
}

.page {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
    position: relative;
    width: 100%;
    text-align: center;
    vertical-align: middle;
    font-size: 18px;
    padding-left: 25%;
    padding-right: 25%;
}

【问题讨论】:

    标签: html css width scrollbar padding


    【解决方案1】:

    只需在你的 CSS 中替换这部分,水平滚动就会消失:

    .content {
           display:inline-block;
          /*display: flex;
          flex-direction: column;
          align-items: stretch;*/
          padding: 0;
          height: 300vh;
     }
    

    但我真的不明白你想用这些 CSS 代码完成什么。

    【讨论】:

      【解决方案2】:

      使用box-sizing: border-box;,这样您的填充就包含在宽度中。否则,您的实际宽度为 100% + 25% + 25% = 150%。

      CSS3 box-sizing 属性

      内容框 默认。 width 和 height 属性(以及 min/max 属性)仅包括内容。不包括边框、填充或边距

      border-box宽度和高度属性(以及最小/最大属性)包括内容、内边距和边框,但不包括边距

      body, html {
          margin: 0;
          padding: 0;
          width: 100%;
          height: 100%;
      }
      
      .main {
          width: 100%;
          height: 100%;
      }
      
      .content {
          display: flex;
          flex-direction: column;
          align-items: stretch;
          padding: 0;
          height: 300vh;
      }
      
      .page {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          height: 100%;
          position: relative;
          width: 100%;
          text-align: center;
          vertical-align: middle;
          font-size: 18px;
          padding-left: 25%;
          padding-right: 25%;
          box-sizing: border-box;
      }
      <div class="main">
          <div class="content">
              <div id="welcome" class="page">
                  <h1>asasd</h1>
                  <p>
                      test3
                  </p>
              </div>
              <div id="asdasd" class="page" data-original="/Images/asdh.jpg">
                  <h1>asdasd</h1>
                  <p>
                      test2
                  </p>
                  <div class="vfd"></div>
                  <div class="measurment"></div>
              </div>
              <div id="test2" class="page" data-original="/Images/test.jpg">
                  <h1></h1>
                  <p>test
                  </p>
              </div>
          </div>
      </div>

      【讨论】:

      • 这是解决方案,但填充不是我的问题。图像是。不过谢谢!
      • @J.Doe 事实上,box-sizing: border-box 解决了两个问题,padding 和 img,祝你好运 =D
      • 对于全局默认值:body {box-sizing: border-box;}body * {box-sizing: border-box;}
      • 这条评论有效,不是答案,哈哈
      【解决方案3】:

      是您的图像导致您的屏幕宽度溢出吗?您始终可以使用 box-sizing 来帮助清除边距和填充:https://css-tricks.com/box-sizing/

      【讨论】:

      • 是的!这很有效,谢谢,学到了一些新东西:) 我会在 2 分钟内标记为答案
      猜你喜欢
      • 1970-01-01
      • 2019-09-19
      • 2014-10-30
      • 2015-09-10
      • 1970-01-01
      • 2012-08-13
      • 2019-12-03
      • 1970-01-01
      • 2018-01-15
      相关资源
      最近更新 更多