在我的网站上,我有这样的风格:
#titlebar a {
display: inline-block;
}
和html:
<div id="titlebar">
<nav>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
</nav>
</div>
我想更改<a>
中标识为<div>
的所有titlebar
代码的样式。 display
应从inline-block
更改为block
。这是可以使用JavaScript还是我必须以不同的方式搜索?
https://jsfiddle.net/Ln0a235v/2/
完整背景:
// Using Gurvinder's solution.
menu = false;
function toggleMenu() {
if (menu) {
document.getElementById("titlebar").style.maxHeight = "4em";
document.getElementById("fab").style.top = "calc(4em - 32px)";
document.querySelectorAll("#titlebar a").forEach(function(el) {
el.style.display = "inline-block";
});
} else {
document.getElementById("titlebar").style.maxHeight = "500px";
document.getElementById("fab").style.top = "0px";
document.querySelectorAll("#titlebar a").forEach(function(el) {
el.style.display = "block";
});
}
menu = !menu;
}
body {
background: #ffffff;
font-family: sans-serif;
}
#titlebar {
position: fixed;
top: 0;
left: 0;
right: 0;
background: #3f51b5;
min-height: 4em;
max-height: 4em;
box-shadow: 0px 4px 8px #757575;
transition: max-height 0.3s;
}
#titlebar a {
font-variant: small-caps;
line-height: 4em;
display: inline-block;
padding: 0px 16px;
margin: 0px;
color: #ffffff;
text-decoration: none;
transition: background 0.2s, display 1s;
outline: none;
}
#titlebar a:hover {
background: #ff4081;
}
#fab {
position: fixed;
width: 64px;
height: 64px;
z-index: 100;
/*right: 64px;*/
right: 3%;
top: calc(4em - 32px);
transition: top 0.3s;
}
.main {
box-shadow: 0px 4px 8px #757575;
width: 80%;
margin: 0 auto;
margin-bottom: 64px;
}
.content {
padding: 6em 0;
margin: 0 10%;
}
hr {
border: 1px solid #c5cae9;
}
.content img {
float: right;
margin-left: 32px;
margin-bottom: 32px;
width: 30%;
min-width: 256px;
box-shadow: 0px 4px 8px #757575;
padding: 8px;
}
<div id="titlebar">
<nav>
<a onclick="toggleMenu()" href="#">ToggleMenu</a>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
</nav>
</div>
<div class="main">
<div class="content">
<h1>Lorem ipsum</h1>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis
eleifend option congue nihil imperdiet doming id quod mazim placerat facer
</p>
<hr/>
<h1>Lorem ipsum</h1>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis
eleifend option congue nihil imperdiet doming id quod mazim placerat facer
</p>
</div>
</div>
答案 0 :(得分:2)
是的,可以使用JavaScript。 更好且不引人注目的方式是使用JavaScript和CSS的组合:
setTimeout(function () {
// See from here:
document.getElementById("titlebar").classList.add("block");
}, 1000);
&#13;
#titlebar a {
display: inline-block;
background: #ccf;
}
#titlebar.block a {
display: block;
}
&#13;
<div id="titlebar">
<nav>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
</nav>
</div>
&#13;
更新:基于OP的小提琴,我在这里应用了我的解决方案:
function toggleMenu() {
document.getElementById("titlebar").classList.toggle("block");
}
&#13;
body {
background: #ffffff;
font-family: sans-serif;
}
#titlebar {
position: fixed;
top: 0;
left: 0;
right: 0;
background: #3f51b5;
min-height: 4em;
max-height: 4em;
box-shadow: 0px 4px 8px #757575;
transition: max-height 0.3s;
}
#titlebar a {
font-variant: small-caps;
line-height: 4em;
display: inline-block;
padding: 0px 16px;
margin: 0px;
color: #ffffff;
text-decoration: none;
transition: background 0.2s, display 1s;
outline: none;
}
#titlebar a:hover {
background: #ff4081;
}
#fab {
position: fixed;
width: 64px;
height: 64px;
z-index: 100;
/*right: 64px;*/
right: 3%;
top: calc(4em - 32px);
transition: top 0.3s;
}
.main {
box-shadow: 0px 4px 8px #757575;
width: 80%;
margin: 0 auto;
margin-bottom: 64px;
}
.content {
padding: 6em 0;
margin: 0 10%;
}
hr {
border: 1px solid #c5cae9;
}
.content img {
float: right;
margin-left: 32px;
margin-bottom: 32px;
width: 30%;
min-width: 256px;
box-shadow: 0px 4px 8px #757575;
padding: 8px;
}
#titlebar.block {
max-height: none;
}
#titlebar.block a {
display: block;
}
&#13;
<div id="titlebar">
<nav>
<a onclick="toggleMenu(); return false;" href="#">ToggleMenu</a>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
</nav>
</div>
<div class="main">
<div class="content">
<h1>Lorem ipsum</h1>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis
eleifend option congue nihil imperdiet doming id quod mazim placerat facer
</p>
<hr/>
<h1>Lorem ipsum</h1>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate
velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis
eleifend option congue nihil imperdiet doming id quod mazim placerat facer
</p>
</div>
</div>
&#13;
更改的元素位于:
<a onclick="toggleMenu(); return false;" href="#">ToggleMenu</a>
// Added a return false.
CSS添加
#titlebar.block {
max-height: none;
}
#titlebar.block a {
display: block;
}
答案 1 :(得分:1)
普通JS方法
document.querySelectorAll( "#titlebar a" ).forEach( function(el){
el.style.display = "block";
});
<强>演示强>
document.querySelectorAll("#titlebar a").forEach(function(el) {
el.style.display = "block";
});
&#13;
#titlebar a {
display: inline-block;
}
&#13;
<div id="titlebar">
<nav>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
<a href="#">test</a>
</nav>
</div>
&#13;
答案 2 :(得分:0)