【问题标题】:div with max-width not taking the max width具有最大宽度的 div 不采用最大宽度
【发布时间】:2016-06-26 20:44:00
【问题描述】:

我有一个以“主”div 为中心的 div 页面。主 div 是全宽,内部 div 的最大宽度等于“主”div 的宽度。当用元素填充它时,它只填充了大约一半的屏幕。我做错了什么?

编辑: 我注意到有些人误解了上面的文字。我的元素(带有浮动:左)将在其中 4 个之后彼此移动。此时 div 的宽度约为 1000px。这意味着最大宽度不是 100%,而是 50%。我检查了浏览器和 CSS,但没有其他选择器覆盖这些值。

CSS:(在 sass 中)

#main
  z-index: 0
  width: 100%
  min-height: calc( 100% )
  background: #FFFFFF
  position: absolute
  left: 0px
  top: 0px
  padding: 50px 0px
  text-align: center
  div.container
    position: absolute
    top: 50%
    left: 50%
    transform: translate(-50%, -50%)
    display: block
    max-height: 100%
    margin: 0 auto
    width: auto
    max-width: 100%
    overflow-y: auto
    overflow-x: hidden
    text-align: left

div.box
  width: 220px
  height: 200px
  border: 1px solid #5774FF
  padding: 19px
  margin: 10px
  float: left
  box-shadow: 1px 1px 4px #CCC

HTML:

<div id="main">
    <div class="container">
        <div class="box">
            <form action="/save" method="post">
                <input type="text" placeholder="code" name="name"/>
                <select name="education">
                    <option value="3">option 3</option>
                </select>
                <button type="submit">save</button>
            </form>
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
        <div class="box">
        </div>
    </div>
</div>

【问题讨论】:

    标签: html css layout


    【解决方案1】:

    您正在使用以下代码将container 居中:

    position: absolute
    top: 50%
    left: 50%
    transform: translate(-50%, -50%)
    

    当你给一个元素一个position: absolute 和一个left: 50% 时,它会自动从左边移动到50%

    如果您希望容器占据整个宽度,则必须删除以下内容:

    position: absolute
    top: 50%
    left: 50%
    transform: translate(-50%, -50%)
    

    【讨论】:

    • 这是有道理的。但是,如果我不能使用它,将 div 水平和垂直居中的解决方案是什么?
    【解决方案2】:

    max-width 将防止元素比指定的宽,但不会使它们变宽。

    【讨论】:

      【解决方案3】:

      您基本上是在告诉浏览器容器div 的最大宽度可以是其父容器的 100%。这使得容器div 流动,因此它将响应不同的屏幕尺寸。

      它只占据大约一半的屏幕,因为它可以拉伸到其子元素所需的大小。

      【讨论】:

        【解决方案4】:

        我对您的css 做了一些更改。希望对您有所帮助:

        #main {
          z-index: 0;
          width: 100%;
          min-height:100%;
          background: #FFFFFF;
          left: 0px;
          top: 0px;
          padding: 50px 0px;
          text-align: center;
          }
          div.container{
            margin-left: 0 auto;
            display: block;
            max-height: 100%;
            margin: 0 auto;
            width: auto;
            max-width: 100%;
            overflow-y: auto;
            overflow-x: hidden;
            text-align: left;
            }
        
        div.box{
            width: 240px;
            height: 200px;
            margin-left: auto;
            margin-right: auto;
            border: 1px solid #5774FF;
            padding: 19px;
            margin-bottom: 10px;
            display: block;
            box-shadow: 1px 1px 4px #CCC;
            float: none;}
        <div id="main">
            <div class="container">
                <div class="box">
                    <form action="/save" method="post">
                        <input type="text" placeholder="code" name="name"/>
                        <select name="education">
                            <option value="3">option 3</option>
                        </select>
                        <button type="submit">save</button>
                    </form>
                </div>
                <div class="box">
                </div>
                <div class="box">
                </div>
                <div class="box">
                </div>
                <div class="box">
                </div>
                <div class="box">
                </div>
                <div class="box">
                </div>
                <div class="box">
                </div>
            </div>
        </div>

        【讨论】:

          猜你喜欢
          • 2014-09-05
          • 2020-09-30
          • 1970-01-01
          • 1970-01-01
          • 2019-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-14
          相关资源
          最近更新 更多