【问题标题】:Horizontal Icons In Navigation Bar导航栏中的水平图标
【发布时间】:2015-08-14 23:52:56
【问题描述】:

我试图在导航栏中水平显示三个社交媒体图标,但是无论我做什么,它们似乎都显示在另一个下方。为了创建我的导航栏,我使用“Off Canvas Menu Effects”让它滑入和滑出(这将解释一些奇怪的 CSS)。我只在下面的导航中发布了html和css,我希望这足以帮助你帮助我哈哈。

.menu, 
.icon-list {
	height: 100%;
}

.icon-list a img {
	max-width:100%;
	margin-left: -5px;
}

.icon-list {
	-webkit-transform: translate3d(0,100%,0);
	transform: translate3d(0,100%,0);
}

.icon-list a {
	display: block;
	/*padding: 0.8em;*/
	padding-bottom: 50px;
	-webkit-transform: translate3d(0,500px,0);
	transform: translate3d(0,500px,0);
}

.icon-list,
.icon-list a {
	-webkit-transition: -webkit-transform 0s 0.4s;
	transition: transform 0s 0.4s;
	-webkit-transition-timing-function: cubic-bezier(0.7,0,0.3,1);
	transition-timing-function: cubic-bezier(0.7,0,0.3,1);
}

.icon-list a:nth-child(2) {
	-webkit-transform: translate3d(0,1000px,0);
	transform: translate3d(0,1000px,0);
}

.icon-list a:nth-child(3) {
	-webkit-transform: translate3d(0,1500px,0);
	transform: translate3d(0,1500px,0);
}

.icon-list a:nth-child(4) {
	-webkit-transform: translate3d(0,2000px,0);
	transform: translate3d(0,2000px,0);
}

.icon-list a:nth-child(5) {
	-webkit-transform: translate3d(0,2500px,0);
	transform: translate3d(0,2500px,0);
}

.icon-list a:nth-child(6) {
	-webkit-transform: translate3d(0,3000px,0);
	transform: translate3d(0,3000px,0);
}

.icon-list a span {
	font-weight: 700;
}

.icons{
	width: 40px;
	height: 40px;
	display:inline-block;
	float: left;
}

.facebook {
	
}

.twitter{
	
}

.linkedin{

}
<nav class="menu">
					<div class="icon-list">
						<a href="index.html"><img src="logo.jpg" alt="logo" class="logo"></a>
						<a href="#"><i class="fa fa-fw fa-star-o"></i><span>HOME</span></a>
						<a href="#"><i class="fa fa-fw fa-bell-o"></i><span>ABOUT</span></a>
						<a href="#"><i class="fa fa-fw fa-envelope-o"></i><span>PRODUCTS</span></a>
						<a href="#"><i class="fa fa-fw fa-comment-o"></i><span>SALES & MOTIVATION</span></a>
						<a href="#"><i class="fa fa-fw fa-bar-chart-o"></i><span>CONTACT</span></a>
						<a href="#"><i class="fa fa-fw fa-newspaper-o"></i><span>CONNECT</span></a>
							<div class="icons">	
								<a href="facebook.com"><img src="facebook.jpg" alt="facebook" class="facebook">
								<a href="twitter.com"><img src="twitter.jpg" alt="twitter" class="twitter"></a>
								<a href="linkedin.com"><img src="linkedin.jpg" alt="linkedin" class="linkedin"></a>
							</div>
					</div>
				</nav>

【问题讨论】:

  • .icons 类中尝试display: block 而不是display: inline-block
  • 没用,已经试过了:(

标签: javascript jquery html css navigation


【解决方案1】:

所以我不能 100% 确定您对最终结果的期望,但我认为这会有所帮助。

首先,display: block 正是使事物相互堆叠的原因,所以您绝对不希望这样。将您的.icon-list a 选择器中的更改为display: inline-block

其次,您强制icons 容器的宽度小于社交图标的总宽度。删除.icons 的宽度。

最后,display: inline-blockfloat: left 不能在同一个规则中,所以选择一个。在我为您制作的代码笔中,我选择了inline-block,但float: left 的工作方式相同。您已经在使用 FontAwesome,所以我将您的图片更改为字体集提供的品牌图标。

here's a codepen with the code in it。如果您需要针对具体问题的进一步帮助,请告诉我。

【讨论】:

  • 我明白你的意思,但问题是导航栏是垂直的,因此所有文本都将显示在垂直列表中。但是,我希望图标像这样水平显示 [IMG]i61.tinypic.com/2dr6lx5.png[/IMG]
  • 好的,所以你应该只使用display: block 用于垂直的东西display: inline-block 用于水平的东西。
  • 原来的代码是这样的,但它不起作用:(
  • 在您的原始代码中,.icons 类的规则为 width: 40px。你怎么能期望在没有空间的容器中水平放置图标?只需从该类中删除 width 属性或将其设为 width: 100%
  • 你的意思可能是.icons a { width: 40px, etc },它会选择实际的图标而不是它们的容器。
【解决方案2】:

经过大量的努力,我让它工作了 :) 有两件事导致 display:blockicons 类和 max-width:100%icon-list a img 选择器中的麻烦。这是更新的代码:

    .menu, 
.icon-list {
    height: 100%;
}
.icon-list a img {
    max-width:30%;
    margin-left: -5px;
}
.icon-list {
    -webkit-transform: translate3d(0,100px,0);
    transform: translate3d(0,100px,0);
}
.icon-list a {
    /*padding: 0.8em;*/
    display: inline;
    padding-bottom: 50px;
    -webkit-transform: translate3d(0,500px,0);
    transform: translate3d(0,500px,0);
}
.icon-list,
.icon-list a {
    -webkit-transition: -webkit-transform 0s 0.4s;
    transition: transform 0s 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.7,0,0.3,1);
    transition-timing-function: cubic-bezier(0.7,0,0.3,1);
}
.icon-list a:nth-child(2) {
    -webkit-transform: translate3d(0,1000px,0);
    transform: translate3d(0,1000px,0);
}

.icon-list a:nth-child(3) {
    -webkit-transform: translate3d(0,1500px,0);
    transform: translate3d(0,1500px,0);
}

.icon-list a:nth-child(4) {
    -webkit-transform: translate3d(0,2000px,0);
    transform: translate3d(0,2000px,0);
}

.icon-list a:nth-child(5) {
    -webkit-transform: translate3d(0,2500px,0);
    transform: translate3d(0,2500px,0);
}

.icon-list a:nth-child(6) {
    -webkit-transform: translate3d(0,3000px,0);
    transform: translate3d(0,3000px,0);
}

.icon-list a span {
    font-weight: 700;
}
.icons{
    width: 40px;
    height: 40px;
    display:inline;
    float: left;
}
.facebook {
}

.twitter{
}

.linkedin{
}

<nav class="menu">
                    <div class="icon-list">
                        <a href="index.html"><img src="logo.jpg" alt="logo" class="logo"></a>
                        <a href="#"><i class="fa fa-fw fa-star-o"></i><span>HOME</span></a>
                        <a href="#"><i class="fa fa-fw fa-bell-o"></i><span>ABOUT</span></a>
                        <a href="#"><i class="fa fa-fw fa-envelope-o"></i><span>PRODUCTS</span></a>
                        <a href="#"><i class="fa fa-fw fa-comment-o"></i><span>SALES & MOTIVATION</span></a>
                        <a href="#"><i class="fa fa-fw fa-bar-chart-o"></i><span>CONTACT</span></a>
                        <a href="#"><i class="fa fa-fw fa-newspaper-o"></i><span>CONNECT</span></a>
                            <div class="icons"> 
                                <a href="facebook.com"><img src="facebook.jpg" alt="facebook" class="facebook" /></a>
                                <a href="twitter.com"><img src="twitter.jpg" alt="twitter" class="twitter"></a>
                                <a href="linkedin.com"><img src="linkedin.jpg" alt="linkedin" class="linkedin"></a>
                            </div>
                    </div>
                </nav>

【讨论】:

  • 感谢您付出这么多的努力!现在图标是水平显示的,但其他一切都是tinypic.com/r/2ptosk2/8,但我希望它看起来像这样tinypic.com/r/2dr6lx5/8
  • 我可以这样做,但为此我需要稍微更改您的 html :)
  • 去吧哈哈哈我现在正处于放弃的边缘哈哈。当页面滚动时,导航栏似乎也不起作用.. 叹气,这真是太麻烦了-.-
  • 放弃永远不应该是我相信的一种选择,尤其是在编程方面:p
猜你喜欢
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多