javascript - 当它具有选定的类时在文本下划线或/并单击它并将文本垂直居中放置

标签 javascript html css

你可以在这里找到 jsfiddle:https://jsfiddle.net/flamant/6zb8vne5/13/ .

下划线:

.selected::before {
  content: "";
  display: block;
  position: absolute;
  bottom: -.5em;            /* décalage vers le bas à ajuster */
  right: 50%;
  left: 50%;
  height: 2px;
  background: black;
  transition: all .5s;      /* pour un petit effet */
}

#searchBuy.selected::before {
  right: 0.5em;
  left: 0.5em;
}
#searchRent.selected::before { 
  right: 0.5em;
  left: 0.5em;
}

垂直居中

.row1 {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  margin-bottom: 10px;
  height: 40px;
  box-shadow: 0px 1px 1px black;
}

#vertical-center {
  margin: 0;
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);  
}

  function addClassSelected(event) {
  	event = event || window.event;
    $("#searchBuy").removeClass("selected");
    $("#searchRent").removeClass("selected");

    console.log('ca passe applyClickCss');
    let target = $(event.target);
         
    console.log(target);
    target.toggleClass("selected");
  }
.selected {
	color: black;
	opacity: 1;
	font-weight: 700;
	font-family: Poppins;
	font-size: 16px; 
}

.colorOpacity10 {
	color: black;
	opacity: 1;
	font-weight: normal;
	font-family: Poppins;
	font-size: 16px; 
}

.selected::before {
  content: "";
  display: block;
  position: absolute;
  bottom: -.5em;            /* décalage vers le bas à ajuster */
  right: 50%;
  left: 50%;
  height: 2px;
  background: black;
  transition: all .5s;      /* pour un petit effet */
}

.row1 {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  margin-bottom: 10px;
  height: 40px;
  box-shadow: 0px 1px 1px black;
}

#vertical-center {
  margin: 0;
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);  
}

#searchBuy.selected::before {
  right: 0.5em;
  left: 0.5em;
}
#searchRent.selected::before { 
  right: 0.5em;
  left: 0.5em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <div class="row1 colorOpacity10">
		<div class="vertical-center">
			<span id="searchBuy" style="margin-left:20px" class="selected"  onclick="addClassSelected(event)">Buy</span> 
		</div>
		<div class="vertical-center">
			<span id="searchRent" style="margin-left:40px" onclick="addClassSelected(event)">Rent</span>
		</div> 
	</div>

我尝试将两个文本跨度垂直居中,并在选择了类和/或单击它时为文本加下划线,如下所示:

enter image description here

最佳答案

只需添加 background: linear-gradient(to right, #F16A70, #F16A70) no-repeat; 背景大小:100% 3px; 背景位置:中心底部; padding: 3px; to selected class

function addClassSelected(event) {
  	event = event || window.event;
    $("#searchBuy").removeClass("selected");
    $("#searchRent").removeClass("selected");

    console.log('ca passe applyClickCss');
    let target = $(event.target);
         
    console.log(target);
    target.toggleClass("selected");
  }
.selected {
	color: black;
	opacity: 1;
	font-weight: 700;
	font-family: Poppins;
	font-size: 16px;
  background: linear-gradient(to right, #F16A70, #F16A70) no-repeat;
  background-size: 100% 3px;
  background-position: center bottom;
  padding: 3px;
}

.colorOpacity10 {
	color: black;
	opacity: 1;
	font-weight: normal;
	font-family: Poppins;
	font-size: 16px; 
}

.selected::before {
  content: "";
  display: block;
  position: absolute;
  bottom: -.5em;            /* décalage vers le bas à ajuster */
  right: 50%;
  left: 50%;
  height: 2px;
  background: black;
  transition: all .5s;      /* pour un petit effet */
  
}

.row1 {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  margin-bottom: 10px;
  height: 40px;
  box-shadow: 0px 1px 1px black;
}

#vertical-center {
  margin: 0;
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);  
}

#searchBuy.selected::before {
  right: 0.5em;
  left: 0.5em;
}
#searchRent.selected::before { 
  right: 0.5em;
  left: 0.5em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row1 colorOpacity10">
		<div class="vertical-center">
			<span id="searchBuy" style="margin-left:20px" class="selected"  onclick="addClassSelected(event)">Buy</span> 
		</div>
		<div class="vertical-center">
			<span id="searchRent" style="margin-left:40px" onclick="addClassSelected(event)">Rent</span>
		</div> 
	</div>

关于javascript - 当它具有选定的类时在文本下划线或/并单击它并将文本垂直居中放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59224898/

相关文章:

php get函数在wordpress中不起作用

html - 是否可以将 `<pre><code>` 放在单独的一行上?

html - Font Awesome 菜单图标有 1px 偏移量

html - 图像最大宽度在 Firefox 中不起作用

javascript - Angularjs ng-change 没有触发

javascript - 如何获取附加按钮中的数据 ID?

javascript - Prototypejs 的 $super 的原生 JS 实现

javascript - DataTables 问题 : VM9075 dataTables. min.js:24Uncaught TypeError: 无法设置未定义的属性 '_DT_CellIndex'

javascript - 将登录表单表格对齐到屏幕的顶部中间

html - 表格以及如何管理数据