【问题标题】:CSS Resizing failure when browser window is scaled vertically浏览器窗口垂直缩放时CSS调整大小失败
【发布时间】:2017-11-05 11:09:00
【问题描述】:

我正在尝试创建一个简单的登录页面,并且在前段时间了解了 CSS3 flexbox 之后,我使用这个新概念重新设计了该页面。所以现在,我的页面看起来像这样:

这就是我想要的...直到我尝试调整浏览器的大小。然后,我得到了这个(当我简单地降低浏览器窗口的高度而不降低宽度时):

还有这个(当我将浏览器窗口的高度和宽度都减到最小时):

这让我很困惑,因为我在其他 stackoverflow 上阅读了我不需要媒体查询来创建响应式网页设计(我打算稍后做),而只是通过指定最大宽度的 CSS在百分比方面。

这是我的代码:

HTML:

<div class="center">
    <!-- Logo -->
    <img id="logo" src="assets/logowshadow.png" alt="cueclick logo">

    <!-- Login element -->
    <form class="login" action="/action_page.js" method="post">
        <p>Enter <i>your</i> secret key</p>
        <div id="password">
            <img id ="eye" src="assets/eye2.png" alt="eye">
            <input type="password" name="secret-key" placeholder="ilovecueclick" autofocus autocomplete="off"/>
        </div>
    </form>
</div>

CSS:

/* -- Background image -- */
body {
    background-image: url(assets/wood.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100vh;
}

/* -- Center element -- */
.center {
    max-width: 60%;
    max-height: 80%;
    width: 30%;
    height: 40%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.7);
    border-radius: 15%;
    box-shadow: 2px 2px 4px 3px #505050;
    position: absolute;
    z-index: 1;
}

/* -- Logo style -- */
#logo {
    position: relative;
    z-index: 2;
    max-width: 100%;
    height: auto;
}

/* -- Form styles -- */
form.login {
    max-width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 2;
}

#password {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-bottom: 5%;
}

/* -- Show password -- */
#eye {
    height: auto;
    max-width: 15%;
    margin-right: 3%;
}

/* -- Login element -- */
form.login p {
    font-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
    font-size: 2vw;
    max-width: 100%;
    height: auto;
    line-height: 2%;
}

form.login input[type=password] {
    max-width: 100%;
    width: 100%;
    height: auto;
}

进一步解释这段代码的作用: - body 有一个全尺寸的背景图像,可随浏览器窗口缩放 - “中心”本质上是背景上方的半透明白色矩形 - 徽标和表单登录元素与白色矩形重叠

我还为它们的 flex 项目创建了三个 flex 容器(以处理中心的麻烦问题): 1)body是flex容器,flex item是中心元素 2)center是flex容器,logo和表单输入部分(即段落+眼睛+输入字段)是flex项 3) 'password' div 是 flex 容器(内联),而 eye 和 login 字段是 flex 项

我真的不确定问题出在哪里,因为当前代码似乎实现了一些缩放...

完整的 HTML 可以在这里找到:https://pastebin.com/6tS6SXi3,完整的 CSS 可以在这里找到:https://pastebin.com/6M11HnJE

提前致谢!

编辑:

经过进一步的实验,结果证明我只需要让中心类的高度为自动...

因为它的简单性而接受了答案,即使它不像我想要的那样使用 flex-box

【问题讨论】:

标签: html css flexbox


【解决方案1】:

使用 HTML 和 CSS 构建表单包装器,而不是使用图像,当屏幕尺寸发生变化时,图像很难控制。

示例: https://codepen.io/anon/pen/NgPGoQ

.login {
  width: 300px;
}

@media screen and (max-width: 768px) {
  .login {
    width: 80%;
  }
}

为您的包装器设置默认宽度,并为您想要自定义宽度的屏幕尺寸添加媒体查询。

【讨论】:

  • 感谢您的建议,但我希望有一个可以操作 flex-box 的答案...此外,我的代码适用于浏览器窗口水平缩放而不是垂直缩放时
  • 仍然接受您的答案,因为它提供了简单性!我想有时最好不要使事情复杂化……谢谢!
  • 垂直缩放浏览器窗口时也可以使用。 login-wrapper 总是足够大来包装所有的表单元素。但是,当登录包装器高于视点时,将会有一个滚动条。您可能希望应用额外的样式来在如此短的视口中自定义您的表单。
【解决方案2】:

从移动开始..

类似的东西(不经意间将 100% 调整为您想要的)

从移动设备到桌面工作,我想你会发现你的情况更容易处理..

这对我来说调整大小很好..

@media (max-width:768px){
    .center {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    }

/* -- Logo style -- */
#logo {
    max-width: 100%;
    height: auto;
}

/* -- Form styles -- */
form.login {
    max-width: 100%;

}

#password {
max-width:100%
}

/* -- Show password -- */
#eye {
    max-width: 100%;
}

/* -- Login element -- */
form.login p {
    max-width: 100%;
    height: auto;
}

form.login input[type=password] {
    max-width: 100%;
    width: 100%;
    height: auto;
}


}

【讨论】:

  • 有趣的是,当调整浏览器窗口大小时,您的代码会使密码输入字段的宽度发生变化...
猜你喜欢
  • 2016-11-27
  • 2013-09-02
  • 2012-02-15
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 2012-02-23
相关资源
最近更新 更多