【发布时间】:2018-05-08 19:17:33
【问题描述】:
我在 Google 上搜索了我的问题,但找不到合适的解决方案。实际上,我正在构建一个当前使用 HTML 和 CSS 的 eBay 列表模板——我正在使用 SCSS 来生成样式表。我现在正在处理我的模板的菜单方面。
我已经设置了我的媒体查询,以便在宽度小于 690 像素的设备上(我没有使用标准查询,我使用断点来适应我的内容 - 它们也可能会发生变化),菜单按钮变为块元素并显示在列中而不是行中(在桌面上)。
首先,这是我正在使用 atm 的媒体查询 - 它是一个名为 _media.scss 的 SCSS 部分文件中的一个 mixin,我将它导入到主 style.scss 中。
@mixin bp-large {
@media only screen and (max-width: 690px){
@content;
}
}
这是使用@import 'media'; 导入到我的style.scss 文件中的
这是我的菜单的 HTML:
<div class='header'>
<section>
<div class='logo'>
<h2>Company Logo</h2>
</div>
<div class='top-menu'>
<ul>
<li><a href='#'>Store Front</a></li>
<li><a href='#'>Latest Arrivals</a></li>
<li><a href='#'>Featured Picks</a></li>
<li><a href='#'>Feedback</a></li>
<li><a href='#'>Contact</a></li>
</ul>
</div>
</section>
</div>
这里是相关的 SCSS:
section {
width: 85vw;
margin: 0 auto;
.header & {
@include bp-large {
width: 60vw;
}
}
}
.logo {
@include bp-large {
text-align: center;
}
}
.top-menu {
background-color: $primary;
text-align: center;
width: 100%;
}
.top-menu ul {
list-style: none;
display: flex;
text-align: center;
flex-direction: row;
@include bp-large {
flex-direction: column;
}
}
.top-menu ul li {
flex-grow: 1;
display: flex;
align-items: center;
background-color: $button-color;
padding: 15px;
border-right: 3px solid $accent-color;
&:last-child {
border: none;
}
&:hover {
background-color: $button-hover;
cursor: pointer;
}
@include bp-large {
display: block;
border-bottom: 3px solid $accent-color;
border-right: none;
&:last-child {
border: none;
}
}
}
我为我的项目@http://dannyxcii.github.io/lst-tmp 设置了一个 GitHub 页面 - 目前该菜单实际上做了在智能手机上查看时应该做的事情(在添加以下 HTML 行之后):
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
但是 - 菜单位于页面左侧,最初不适合设备宽度 - 通常的“双击居中”让它看起来应该是这样的。关于如何解决这个问题的任何想法?
【问题讨论】:
-
Pfff,如果没有 meta viewport 标签,手机将模拟 980px 宽的页面。不确定是否有解决方案。
-
为什么不使用百分比而不是 vw 作为宽度?
标签: html css responsive-design sass