【发布时间】:2021-04-12 18:26:24
【问题描述】:
【问题讨论】:
-
您可能会查看
text-underline-offset,尽管(在撰写本文时)它仅与最新版本的主要浏览器兼容。 -
让我确认您实际上想说什么。您刚刚编辑了将您的问题更改为不同问题的问题
标签: html css bootstrap-4 frontend
【问题讨论】:
text-underline-offset,尽管(在撰写本文时)它仅与最新版本的主要浏览器兼容。
标签: html css bootstrap-4 frontend
使用边框代替下划线可以解决您的问题。试试这个代码。
ul.ml-auto > li > a > span{
font: 15px Roboto,sans-serif;
font-weight: 500;
position: relative;
display: inline-block;
color: #FFFFFF80;
overflow: hidden;
padding-bottom: 5px;
}
ul.ml-auto > li > a > span::before {
position: absolute;
content: attr(data-content);
color: #00FFFF;
clip-path: polygon(0 0, 0 0, 0% 100%, 0 100%);
transition: clip-path 275ms ease;
display: block;
border-bottom: 1px solid #00FFFF;
padding-bottom: 3px;
}
【讨论】:
首先使用 text-decorate: underline 时不能修改间距
你的代码使用 <:before> 因为 span 是内联样式,然后它的间距会随着里面的内容而固定。
我的解决方案是为你和 <:before> 进行填充,然后在 :before 标签内使用border-bottom
ul.ml-auto > li > a > span{
///Adding bottom-padding here
padding-bottom: 3px; // your spacing you want - 1 cause the border will take 1px of the height
}
ul.ml-auto > li > a > span::before {
border-bottom: 1px solid red;
padding-bottom:2px;
}
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap Resize</title>
<meta charset="utf-8"></meta>
<meta name="viewport" content="width=device-width, initial-scale=1" ></meta>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<style type="text/css">
.navbar-custom {
background-color: #484848;
}
ul.ml-auto > li > a > span{
font: 15px Roboto,sans-serif;
font-weight: 500;
position: relative;
display: inline-block;
color: #FFFFFF80;
overflow: hidden;
padding-bottom:2px;
}
ul.ml-auto > li > a > span::before {
position: absolute;
content: attr(data-content);
color: #00FFFF;
border-bottom: 1px solid red;
padding-bottom:2px;
clip-path: polygon(0 0, 0 0, 0% 100%, 0 100%);
transition: clip-path 275ms ease;
}
ul.ml-auto > li > a > span:hover::before {
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
</style>
<body>
<nav class="navbar navbar-custom navbar-expand-lg navbar-dark fixed-top" id="mainNav">
<div class="container">
<a style="font: 20px Arial,sans-serif" class="navbar-brand js-scroll-trigger" href="#">HOME</a>
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul style="font: 15px Roboto,sans-serif" class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#about"><span data-content="LOREM">LOREM</span></a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#expertise"><span data-content="LOREM">LOREM</span></a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#portfolio"><span data-content="LOREM">LOREM</span></a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#contact"><span data-content="LOREM">LOREM</span></a>
</li>
</ul>
</div>
</div>
</nav>
</body>
</html>
【讨论】:
这里是一个示例 Html,用于在菜单中填充列表的顶部和底部
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarTogglerDemo01">
<ul class="ml-auto navbar-nav">
<li class="nav-item">
<a class="nav-link" href="">Contact</a>
</li>
<li class="nav-item">
<a class="nav-link" href="">About me</a>
</li>
<li class="nav-item">
<a class="nav-link" href="">Features</a>
</li>
</ul>
</div>
</nav>
here is the code for underline
li{
text-decoration: underline;
text-underline-position: under;
}
【讨论】: