关于图片右边的竖线问题

来源:5-4 Nav-Header组件(4)

慕桂英8566455

2020-03-16

老师您好,如图1中的竖线,我设置的是&:after是可以正常显示的,如果我像老师的代码里一样设置成&:before就会在左边显示,如图2,查资料发现&:after是在元素后面显示,before是在前面显示,所以对于老师设置成before还能显示正常表示疑惑图片描述
![图片描述

<template>
	<div class="header">
		<div class="nav-topbar">
			<div class="container">
				<div class="topbar-menu">
					<a href="javascript:;">小米商城</a>
					<a href="javascript:;">MUI</a>
					<a href="javascript:;">云服务</a>
					<a href="javascript:;">协议规则</a>
				</div>
				<div class="topbar-user">
					<a href="javascript:;">登录</a>
					<a href="javascript:;">注册</a>
					<a href="javascript:;" class="my-cart"><span class="icon-cart"></span>购物车</a>
				</div>
			</div>
		</div>
		<div class="nav-header">
			<div class="container">
				<div class="header-log">
					<a href="/#/index"></a>
				</div>
				<div class="header-menu">
					<div class="item-menu">
						<span>小米手机</span>
						<div class="children">
							<ul>
								<li class="product">
									<a href="" target="_blank">
									<div class="pro-img">
										<img src="/imgs/nav-img/nav-3-1.jpg" alt="">
									</div>
									<div class="pro-name">小米壁画电视 65英寸</div>
									<div class="pro-price">6999元</div>
									</a>
								</li>
								<li class="product">
									<a href="" target="_blank">
										<div class="pro-img">
											<img src="/imgs/nav-img/nav-3-2.jpg" alt="">
										</div>
										<div class="pro-name">小米全面屏电视E55A</div>
										<div class="pro-price">1999元</div>
									</a>
								</li>
								<li class="product">
									<a href="" target="_blank">
										<div class="pro-img">
											<img src="/imgs/nav-img/nav-3-3.png" alt="">
										</div>
										<div class="pro-name">小米电视4A 32英寸</div>
										<div class="pro-price">699元</div>
									</a>
								</li>
								<li class="product">
									<a href="" target="_blank">
										<div class="pro-img">
											<img src="/imgs/nav-img/nav-3-4.jpg" alt="">
										</div>
										<div class="pro-name">小米电视4A 55英寸</div>
										<div class="pro-price">1799元</div>
									</a>
								</li>
								<li class="product">
									<a href="" target="_blank">
										<div class="pro-img">
											<img src="/imgs/nav-img/nav-3-5.jpg" alt="">
										</div>
										<div class="pro-name">小米电视4A 65英寸</div>
										<div class="pro-price">2699元</div>
									</a>
								</li>
								<li class="product">
									<a href="" target="_blank">
										<div class="pro-img">
											<img src="/imgs/nav-img/nav-3-6.png" alt="">
										</div>
										<div class="pro-name">查看全部</div>
										<div class="pro-price">查看全部</div>
									</a>
								</li>
							</ul>
						</div>
					</div>
					<div class="item-menu">
						<span>Redmi红米</span>
						<div class="children"></div>
					</div>
					<div class="item-menu">
						<span>电视机</span>
						<div class="children"></div>
					</div>
				</div>
				<div class="header-search">
					<div class="wrapper">
						<input type="text" name="keyword">
						<a href="javascript:;"></a>
					</div>
				</div>
			</div>
		</div>
	</div>
</template>
<script type="text/javascript">
	export default{
		name:'nav-header'
	}
</script>
<style lang="scss">
	@import './../assets/scss/base.scss';
	@import './../assets/scss/mixin.scss';
	@import './../assets/scss/config.scss';
	.header{ 
		.nav-topbar{
			height: 39px;
			line-height: 39px;
			background-color: #333333;
			color: #B0B0B0;
			.container{
				@include flex();
				a{
					display: inline-block;
					color: #B0B0B0;
					margin-right: 17px;
				}
				.my-cart{
					width: 110px;
					background-color: #FF6600;
					text-align: center;
					color: #FFFFFF;
					.icon-cart{
						@include bgImg(16px,12px,'/imgs/icon-cart-checked.png');
						margin-right: 4px;
					}
				}
			}
		}
		.nav-header{
			.container{
				position: relative;
				height: 112px;
				@include flex();
				.header-log{
					display: inline-block;
					width: 55px;
					height: 55px;
					background-color: #FF6600;
					a{
						display: inline-block;
						width: 110px;
						height: 55px;
						&:before{
							content:'	';
							@include bgImg(55px,55px,'/imgs/mi-logo.png');
							background-size: 55px;
							transition: margin .2s;
						};
						&:after{
							content:'	';
							@include bgImg(55px,55px,'/imgs/mi-home.png');
							background-size: 55px;
						};
						&:hover:before{
							margin-left: -55px;
							transition: margin .2s;
						};
					}
				}
				.header-menu{
					display: inline-block;
					width: 643px;
					padding-left: 209px;
					.item-menu{
						display: inline-block;
						color: #333333;
						font-weight: bold;
						font-size: 16px;
						line-height: 112px;
						margin-left: 20px;
						span{
							cursor: pointer;
						}
						&:hover{
							color:$colorA;
							.children{
								height: 220px;
							}
						}
						.children{
							position: absolute;
							top: 112px;
							left: 0;
							width: 1226px;
							height: 220px;
							border-top: 1px solid #E5E5E5;
							box-shadow: 0px 7px 6px 0px rgba(0,0,0,0.11);
							z-index: 10;
							.product{
								position: relative;
								float: left;
								width: 16.6%;
								height: 220px;
								font-size: 12px;
								line-height: 12px;
								text-align: center;
								a{
									display: inline-block;
								}
								img{
									width: auto;
									height: 111px;
									margin-top: 26px;
								}
								.pro-img{
									height: 137px;
								}
								.pro-name{
									font-weight: bold;
									margin-top: 19px;
									margin-bottom: 8px;
									color: $colorB;
								}
								.pro_price{
									color: $colorA;
								}
								&:before{
									content: ' ';
									position: absolute;
									top: 28px;
									border-left: 1px solid $colorF;
									height: 100px;
									width: 1px;
								}
								&:last-child:after{
									display: none;
								} ;

							}
						}
					}
				}
				.header-search{
					width: 319px;
					.wrapper{
						height: 50px;
						border: 1px solid #E0E0E0;
						display:flex;
						align-items: center;
						input{
							border: none;
							box-sizing: border-box;
							border-right: 1px solid #E0E0E0;
							width: 264px;
							height: 50px;
							padding-left: 14px;
						}
						a{
							@include bgImg(18px,18px,'/imgs/icon-search.png');
							margin-left: 17px;
						}
					}
				}
			}

		}
	
	}
</style>
写回答

1回答

河畔一角

2020-03-16

设置before和after都可以。before的时候需要把first-child设置为隐藏。设置after的时候需要把last-child隐藏。所以两个都可以。

0
0

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶构建企业级电商系统,真实服务端数据对接,高实用性

2560 学习 · 1307 问题

查看课程