在不移动其他文本的情况下增加字体大小

Posted

技术标签:

【中文标题】在不移动其他文本的情况下增加字体大小【英文标题】:Increasing font size without moving other text 【发布时间】:2016-03-24 09:44:53 【问题描述】:

我正在学习 html 和 CSS,我已经搜索了这个问题,但没有找到适合我的解决方案。

所以在我的导航栏中,当用户将鼠标悬停在一段文本上时,大小会增加,但也会移动其他文本。我希望大小增加但不移动其他文本。

我的网站

.nav 
    margin-top: 0px;
    height: 40px;
    width: 600px;
    background: white;

.nav ul 
    display: inline-block;
    margin: 0;
    padding: 0;

.nav ul li 
    list-style: none;
    display: inline;

.nav ul li a 
    text-decoration: none;
    float: left;
    display: block;
    padding: 10px 20px; 
    color: black;
    font-family: ProximaNova;
    font-size: 18px;

.nav ul li a:hover 
    color: #D46300;
    font-size: 22px;
 <div class="nav">
            <ul>
                <li><a href="news.html">News</a></li>
                <li><a href="servers.html">Servers</a></li>
                <li><a href="donate.html">Donate</a></li>
                <li><a href="bans.html">Bans</a></li>
                <li><a href="support.html">Support</a></li>
            </ul>
        </div>

【问题讨论】:

把这个移到小提琴上,这样更容易看到你的问题 试试这个:jsfiddle.net/3rm2sut4/embedded/result 【参考方案1】:

这就是你要找的吗?

.nav 
  margin-top: 0px;
  height: 40px;
  width: 600px;
  background: white;


.nav ul 
  display: block;
  margin: 0;
  padding: 0;
  position: relative;


.nav ul li 
  list-style-type: none;
  display: inline-block;
  width: 20%;
  padding: 0;
  margin: 0;
  float: left;
  text-align: center;


.nav ul li a 
  text-decoration: none;
  display: block;
  width: 100%;
  height: 100%;
  line-height: 40px;
  color: black;
  font-family: ProximaNova;
  font-size: 18px;
  transition: color .3s cubic-bezier(0.55, 0, 0.55, 0.2) , font-size .3s cubic-bezier(0.55, 0, 0.55, 0.2) ;


.nav ul li a:hover 
  color: #D46300;
  font-size: 22px;
<center>
  <div class="nav">
    <ul>
      <li><a href="news.html">News</a></li>
      <li><a href="servers.html">Servers</a></li>
      <li><a href="donate.html">Donate</a></li>
      <li><a href="bans.html">Bans</a></li>
      <li><a href="support.html">Support</a></li>
    </ul>
  </div>
</center>

事实上,不建议为文本动画更改字体大小,因为大多数时候动画是生涩的。这是一个使用scale的示例:

.nav 
      margin-top: 0px;
      height: 40px;
      width: 600px;
      background: white;
    
    .nav ul 
      display: block;
      margin: 0;
      padding: 0;
      position: relative;
    
    .nav ul li 
      list-style-type: none;
      display: inline-block;
      width: 12%;
      padding: 0;
      margin: 0;
      text-align: center;
    
    .nav ul li a 
      text-decoration: none;
      text-rendering: geometricPrecision;
      position: relative;
      display: block;
      width: 100%;
      height: 100%;
      line-height: 40px;
      color: black;
      font-family: ProximaNova;
      font-size: 18px;
      transition: transform .3s cubic-bezier(0.55, 0, 0.55, 0.2) , color .3s cubic-bezier(0.55, 0, 0.55, 0.2);
      transform-origin: 50% 30%;
    
    .nav ul li a:hover 
      color: #D46300;
      transform: scale(1.3);
    
<center>
  <div class="nav">
    <ul>
      <li><a href="news.html">News</a>
      </li>
      <li><a href="servers.html">Servers</a>
      </li>
      <li><a href="donate.html">Donate</a>
      </li>
      <li><a href="bans.html">Bans</a>
      </li>
      <li><a href="support.html">Support</a>
      </li>
    </ul>
  </div>
</center>

这里是the fiddle。随意调整它以适应您的喜好。

【讨论】:

是否可以减小每个li或word之间的大小? 当然。您要么减少 ul(因为每个 liul 宽度的 1/5),要么减少 20%。见第二个 sn-p。 这太酷了,我学到了新东西谢谢@tao,这是你的要点的一个非常简化的版本jsfiddle.net/14gq5ceu【参考方案2】:

这是因为当尺寸变大时元素的宽度会发生变化。一种解决方案是给 li 一个明确的宽度:

.nav ul li 
    list-style: none;
  float: left;
  width: 40px;
    padding: 10px 20px; 

.nav ul li a 
    text-decoration: none;
    display: block;
    color: black;
    font-family: ProximaNova;
    font-size: 18px;
  height: 100%;
  width: 100%;

【讨论】:

np,如果这是您正在寻找的答案,将不胜感激将其作为答案。努力提高分数!

以上是关于在不移动其他文本的情况下增加字体大小的主要内容,如果未能解决你的问题,请参考以下文章

在不丢失 Html 样式的情况下更改 NSAttributedString 中的字体大小 - Swift

在不改变字体大小的情况下控制字体粗细

是否可以在不使用文本包装器的情况下使用不同的列表编号字体大小和列表内部文本? [复制]

如何在不使用自动收缩的情况下使用不同 iPhone 尺寸的自动布局更改字体大小 [重复]

如何在不更改字体大小的情况下快速更改 UISegmentedControl 的字体?

如何在不更改字体本身的情况下更改 uilabel 的字体大小?