首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用display:flex显示带有图像和文本的列表?

如何使用display:flex显示带有图像和文本的列表?
EN

Stack Overflow用户
提问于 2019-12-23 16:58:37
回答 3查看 60关注 0票数 0

我有一个带有图片的列表(过滤器),我正试着在它下面写下每个类别的名称。问题是,我似乎不能把它们放在图像下面。我认为这与它们是display: flex;的事实有关,但如果我删除它,我就会遇到其他问题。

HTML标记为:

代码语言:javascript
运行
复制
<li class="module" data-tab="tab-1">
<img class="filter-img" src="https://via.placeholder.com/60x60">
<span class="filter-text">Text</span>
</li>

和CSS:

代码语言:javascript
运行
复制
.module {
    display: flex;
    align-items: center;
    height:60px;
    line-height:54px;
    text-align:center;
    background:#FFFFFF;
    color:#666666;
    text-transform: uppercase;
}
.filter-img{
  display:block;
}
.filter-text{
  display:block;
  font-size:0.7rem;
}

我怎样才能让<span class="filter-text">位于<img class="filter-img">的下面,并且仍然可以点击?

这里有一个小提琴:https://jsfiddle.net/8s14am7v/

谢谢你的建议!

EN

Stack Overflow用户

回答已采纳

发布于 2019-12-23 17:13:29

flex-direction: column添加到.module,它会将图像下的文本对齐

代码语言:javascript
运行
复制
$( document ).on( "click", "ul#tabs li", function() {
			
			var tab_id = $(this).attr('data-tab');
	
			$('ul#tabs li').removeClass('current');
			$('.tab-content').removeClass('current');
	
			$(this).addClass('current');
			$("#"+tab_id).addClass('current');
			
		})
代码语言:javascript
运行
复制
#categories-container {
    width:100%;
    height: 80px;
    overflow: hidden;
    font-size: 0.8rem;
	
	display: flex;
	top: 0px;
	
	position: sticky;
	position: -webkit-sticky;
	position: -moz-sticky;
	position: -ms-sticky;
	position: -o-sticky;

	z-index: 5000;
	
	background-color: #FFFFFF;
	border-bottom: 1px solid #f4f4f4;
	border-top: 1px solid #f4f4f4;
	
}
#tabs {
    height:70px;
    padding:0px;
    white-space:nowrap;
    overflow-x: scroll;
    overflow-y: hide;
	-webkit-overflow-scrolling:touch;
	padding: 0px;
	margin: 0px 20px;
	display: inline-flex;
}
.module:first-child {
	margin-right: 11px;
}
.module {
    display: flex;
    flex-direction: column;
    align-items: center;
    height:60px;
    line-height:54px;
    text-align:center;
    background:#FFFFFF;
    color:#666666;
	text-transform: uppercase;
}
.module.current {
   color:#424647;
   font-weight: 500;
}
.module + .module {
    /* margin-left:10px*/
    margin: 0px 11px;
}
.tab-content{
			display: none;
			background: #FFFFFF;
			padding: 0px;
			margin-top: 10px;
}
.tab-content.current{
			display: inherit;
}

.filter-img{
  display:block;
}
.filter-text{
  display:block;
  font-size:0.7rem;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="categories-container">

  <ul id="tabs">
  <li class="module" data-tab="tab-1"><img class="filter-img" src="https://via.placeholder.com/60x60"><span class="filter-text">Text</span></li>
  <li class="module" data-tab="tab-2"><img class="filter-img" src="https://via.placeholder.com/60x60"><span class="filter-text">Text</span></li>
  <li class="module" data-tab="tab-3"><img class="filter-img" src="https://via.placeholder.com/60x60"><span class="filter-text">Text</span></li>
  <li class="module current" data-tab="tab-4"><img class="filter-img" src="https://via.placeholder.com/60x60"><span class="filter-text">Text</span></li>
  <li class="module" data-tab="tab-5"><img class="filter-img" src="https://via.placeholder.com/60x60"><span class="filter-text">Text</span></li>
  <li class="module" data-tab="tab-6"><img class="filter-img" src="https://via.placeholder.com/60x60"><span class="filter-text">Text</span></li>
  </ul>
</div>

<div id="categories-container-content">

  <div id="tab-1" class="tab-content">1</div>
  <div id="tab-2" class="tab-content">2</div>
  <div id="tab-3" class="tab-content">3</div>
  <div id="tab-4" class="tab-content current">4</div>
  <div id="tab-5" class="tab-content">5</div>
  <div id="tab-6" class="tab-content">6</div>

</div>

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59452493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档