响应式设计——移动&在本例中为桌面布局
Responsive design - reverse css effect between the mobile & desktop layout in this case
在本例中,菜单在桌面布局中展开,而在移动布局中隐藏。
我的问题是如何使它在下面?
- 手机布局:无隐藏&展开菜单
- 桌面布局:隐藏菜单
$('#nav-toggle').click(function() {
$('nav').toggleClass("active");
});
* {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
font-family: sans-serif;
font-size: 100%;
}
#top-bar {
position: relative;
max-width: 1000px;
height: 85px;
background-color: #22bbff;
margin-left: auto;
margin-right: auto;
}
#nav-toggle {
float: right;
display: block;
border-left: 1px solid #fff;
}
nav {
float: right;
}
.active ul {
display: block;
}
ul {
position: absolute;
display: none;
top: 60px;
right: 0;
width: 150px;
list-style-type: none;
background-color: #22bbff;
border: 1px solid #fff;
text-align: center;
}
li {
display: block;
}
a {
display: block;
padding-top: 21px;
padding-right: 40px;
padding-left: 40px;
padding-bottom: 21px;
color: #fff;
text-decoration: none;
background-color: #294C52;
border: 1px solid #fff;
}
a:hover {
background-color: #1BBC9B;
border: 1px solid #fff;
}
@media screen and (min-width: 767px) {
nav {
position: relative;
float: right;
right: 50%;
}
#nav-toggle {
display: none;
}
ul {
position: relative;
float: right;
display: block;
top: 0;
right: -50%;
width: auto;
height: 60px;
list-style-type: none;
border: none;
}
li {
float: left;
display: block;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="top-bar">
<a href="#" id="nav-toggle">M</a>
<nav>
<ul>
<li><a href="#">Link 1</a>
</li>
<li>
<a href="#">Link 2 <i></i></a>
</li>
<li><a href="#">Link 3</a>
</li>
</ul>
</nav>
</div>
如果你想让你的例子相反-普通浏览器上的小折叠菜单,移动设备上的完整菜单-你可以改变你的@media查询从使用min-width
到这个:
@media screen and (max-width: 767px) {
样本。但是,当视口变得太窄时,这会破坏菜单的布局。
你总是可以把你的css样式应用到桌面视图&有针对性的媒体查询,我已经做了下面使用您的原始css。
你需要自定义桌面视图下拉菜单的css(当前视图可能不是你想要的,尽管行为是正确的)。您可以使用额外的css类来实现这一点。请检查浏览器控制台以获取指导。
$('#nav-toggle').click(function() {
$('nav').toggleClass("active");
});
* {
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
font-family: sans-serif;
font-size: 100%;
}
#top-bar {
position: relative;
max-width: 1000px;
height: 85px;
background-color: #22bbff;
margin-left: auto;
margin-right: auto;
}
nav {
position: relative;
float: right;
right: 50%;
}
#nav-toggle {
display: none;
}
ul {
position: relative;
float: right;
display: block;
top: 0;
right: -50%;
width: auto;
height: 60px;
list-style-type: none;
border: none;
}
li {
float: left;
display: block;
}
a {
display: block;
padding-top: 21px;
padding-right: 40px;
padding-left: 40px;
padding-bottom: 21px;
color: #fff;
text-decoration: none;
background-color: #294C52;
border: 1px solid #fff;
}
a:hover {
background-color: #1BBC9B;
border: 1px solid #fff;
}
@media screen and (min-width: 767px) {
#nav-toggle {
float: right;
display: block;
border-left: 1px solid #fff;
}
nav {
float: right;
}
.active ul {
display: block;
}
ul {
position: absolute;
display: none;
top: 60px;
right: 0;
width: 150px;
list-style-type: none;
background-color: #22bbff;
border: 1px solid #fff;
text-align: center;
}
li {
display: block;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="top-bar">
<a href="#" id="nav-toggle">M</a>
<nav>
<ul>
<li><a href="#">Link 1</a>
</li>
<li>
<a href="#">Link 2 <i></i></a>
</li>
<li><a href="#">Link 3</a>
</li>
</ul>
</nav>
</div>
首先加上这个
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
因为你想让它响应…那么如何使用它呢例如
<body>
<div class="container">
<h2>Table</h2>
<p>The .table-responsive class creates a responsive table which will scroll horizontally on small devices (under 768px). When viewing on anything larger than 768px wide, there is no difference:</p>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Firstname</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Anna</td>
</tr>
<tr>
<td>2</td>
<td>Debbie</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
所以如果你把一个类或另一个容器放在这个容器的"table-responsive"之外它就不会再有响应了。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 从桌面读取python文件时高亮显示代码
- 使用agility.js进行页面布局和合成
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 如何实现此布局
- 有没有一个javascript图形绘制库可以进行气球树布局
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- vaadin:使用自定义布局集成angular js
- YouTube作为弹出窗口在桌面版本上播放,但不在移动设备上播放
- 如何在plnkr.co上显示桌面上的图像
- 如何使用javascript检测触摸设备浏览器与桌面
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- 展开移动设备上的折叠菜单,同时在桌面上保持悬停
- 布局中的项目管理
- 如何操作d3js树布局
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- 将桌面上的悬停导航栏转换为触摸屏上的可点击导航栏
- 在链接d3强制布局中添加和删除类
- Web上的桌面IDE样式布局
- 响应式设计——移动&在本例中为桌面布局