隐藏导航栏中

时间:2017-02-10 20:51:36

标签: html css

我不完全确定CSS可以实现这一点,但我知道它与Jquery有关。如果只能用CSS,我会很感激帮助,因为我根本不懂Jquery。

我希望在800px处创建一个断点。我需要在此断点处隐藏除徽标之外的所有li项目。如何对徽标进行例外处理,这也是一个项目?

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
li,
span {
  margin: 0px;
  padding: 0px;
}
h1 {
  margin: 0 0 14px 0;
}
h2 {
  margin: 0 0 10px 0;
}
.wht {
  color: #fff;
}
.clear {
  clear: both;
}
/*Vivid Page Settings*/

header {
  width: 100%;
  background-color: #fff;
  border-bottom: #000 1px solid;
}
.vd-hide {

	display: none;
  
}
.vd-settings-wrapper {
  width: 15%;
  max-width: 200px;
}
.vd-user-settings {
  width: 48px;
  height: 48px;
  border: 1px solid #000;
  background-color: #fff;
  float: left;
  margin: 12px 2px 0 21px;
}
.vd-currency-selector {
  width: 58px;
  height: 21px;
  border: 1px solid #000;
  background-color: #fff;
  float: left;
  margin: 12px 2px 1px 2px;
}
.vd-language-selector {
  width: 58px;
  height: 21px;
  border: 1px solid #000;
  background-color: #fff;
  float: left;
  margin: 3px 2px 0 2px;
}
/*Vivid Main Navigation*/

.vd-navigation-wrapper {

	display: flex;
}

.vd-nav-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 75%;
  height: 78px;
  margin: 0 auto;
  text-align: center;
}
.vd-nav-wrapper ul {
  font-family: 'Montserrat', sans-serif;
  /* text-align: center; */
  list-style: none;
  padding: 0;
  margin: 0;
}
.vd-nav-wrapper li {
  text-decoration: none;
  list-style: none;
  display: inline-block;
  margin: 25px 20px;
  vertical-align: middle;
}
.vd-nav-wrapper a {
  text-decoration: none;
  list-style: none;
  display: inline-block;
  margin: 18px 20px;
  vertical-align: middle;
}
.vd-logo-img {
  margin: 0px;
  padding: 0px;
}
/*Vivid Checkout Settings*/

.vd-cart-wrapper {
  width: 10%;
  z-index: 10;
}
.vd-cart-selector {
  width: 48px;
  height: 48px;
  border: 1px solid #000;
  background-color: #fff;
  margin: -11px 31px 0 2px;
  position: absolute;
  top: 23px;
  right: -9px;
}
<div class="vd-navigation-wrapper">
   	 <div class="vd-settings-wrapper">
    	<div class="vd-user-settings">
        </div>
        <div class="vd-currency-selector">
        </div>
        <div class="vd-language-selector">
        </div>
     </div>
     <div class="vd-nav-wrapper">
			<ul>
				<li>Shop</li>
				<li>About</li>
				<li class="vd-logo-img"><img src="img/vivid_logo.png"/></li>
				<li>Lookbook</li>
				<li>Contact</li>
			</ul>
     </div>
      <div class="vd-cart-wrapper">
       <div class="vd-cart-selector"></div>
      </div>
      
</div>

5 个答案:

答案 0 :(得分:4)

这是您需要的选择器。我认为这是自我解释的:

.vd-navigation-wrapper  li:not(.vd-logo-img) {
  display: none;
}

编辑感谢Hajji Tark指出Edge和FF不支持:not()选择器。解决方法是为所有display:none设置li并覆盖异常:

.vd-navigation-wrapper li {
  display: none;
}
.vd-navigation-wrapper .vd-logo-img {
  display: block; /* use inline-block or list-item if appropriate */ 
}

未了解您的@media查询要求。如果您需要帮助,请告诉我。基本上你需要将它包装在

@media (min-width: 800px) { /* rules here */ }

@media (max-width: 800px) { /* rules here */ }

如果您想要800px(等于)的特定案例,您可以使用

@media (min-width: 800px) and (max-width: 800px){ /* rules here */ }

答案 1 :(得分:1)

在你的Css中:

.vd-nav-wrapper li { display: none )
.vd-logo-img { display: initial }

答案 2 :(得分:1)

@media only screen and ( max-width: 800px ) { li[class!="vd-logo-img"] { display: none; } }

Media Queries 在这里,我使用CSS媒体查询来确定页面文档的当前大小,如果它达到800px,那么样式将应用于文档。

Selector 我使用属性选择器定位除<li>之外的所有<li class="vd-logo-img">元素,其类等于&#34; vd-logo-img&#34;

答案 3 :(得分:0)

另一种选择:

.vd-navigation-wrapper  li {
     display: none;
}

.vd-navigation-wrapper  li.vd-logo-img {
     display: block;
}

这是可能的,因为CSS应用了更严格的规则。

答案 4 :(得分:0)

您可以使用css media query和:not()技巧隐藏没有徽标的所有li。 请参阅css部分。 Live On Fiddle适用于所有浏览器。

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
li,
span {
  margin: 0px;
  padding: 0px;
}

h1 {
  margin: 0 0 14px 0;
}

h2 {
  margin: 0 0 10px 0;
}

.wht {
  color: #fff;
}

.clear {
  clear: both;
}


/*Vivid Page Settings*/

header {
  width: 100%;
  background-color: #fff;
  border-bottom: #000 1px solid;
}

.vd-hide {
  display: none;
}

.vd-settings-wrapper {
  width: 15%;
  max-width: 200px;
}

.vd-user-settings {
  width: 48px;
  height: 48px;
  border: 1px solid #000;
  background-color: #fff;
  float: left;
  margin: 12px 2px 0 21px;
}

.vd-currency-selector {
  width: 58px;
  height: 21px;
  border: 1px solid #000;
  background-color: #fff;
  float: left;
  margin: 12px 2px 1px 2px;
}

.vd-language-selector {
  width: 58px;
  height: 21px;
  border: 1px solid #000;
  background-color: #fff;
  float: left;
  margin: 3px 2px 0 2px;
}


/*Vivid Main Navigation*/

.vd-navigation-wrapper {
  display: flex;
}

.vd-nav-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 75%;
  height: 78px;
  margin: 0 auto;
  text-align: center;
}

.vd-nav-wrapper ul {
  font-family: 'Montserrat', sans-serif;
  /* text-align: center; */
  list-style: none;
  padding: 0;
  margin: 0;
}

.vd-nav-wrapper li {
  text-decoration: none;
  list-style: none;
  display: inline-block;
  margin: 25px 20px;
  vertical-align: middle;
}

.vd-nav-wrapper a {
  text-decoration: none;
  list-style: none;
  display: inline-block;
  margin: 18px 20px;
  vertical-align: middle;
}

.vd-logo-img {
  margin: 0px;
  padding: 0px;
}


/*Vivid Checkout Settings*/

.vd-cart-wrapper {
  width: 10%;
  z-index: 10;
}

.vd-cart-selector {
  width: 48px;
  height: 48px;
  border: 1px solid #000;
  background-color: #fff;
  margin: -11px 31px 0 2px;
  position: absolute;
  top: 23px;
  right: -9px;
}

@media only screen and (max-width:800px) {
 .vd-nav-wrapper ul li:not(.vd-logo-img){
display: none;
  }
}
<div class="vd-navigation-wrapper">
  <div class="vd-settings-wrapper">
<div class="vd-user-settings">
</div>
<div class="vd-currency-selector">
</div>
<div class="vd-language-selector">
</div>
  </div>
  <div class="vd-nav-wrapper">
<ul>
  <li>Shop</li>
  <li>About</li>
  <li class="vd-logo-img"><img src="img/vivid_logo.png" /></li>
  <li>Lookbook</li>
  <li>Contact</li>
</ul>
  </div>
  <div class="vd-cart-wrapper">
<div class="vd-cart-selector"></div>
  </div>

</div>