【问题标题】:CSS: Auto update font sizeCSS:自动更新字体大小
【发布时间】:2013-07-18 22:52:01
【问题描述】:

我有一个导航栏。当用户使他们的屏幕更大时,我希望我的字体大小能够自动调整。我试过了: li { font-size: 1.2vw;调整屏幕后刷新页面即可。自动更新的代码是什么?我希望我的文本根据窗口宽度不断更改其大小。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Power</title>
<style type="text/css">


#page {
    position:inherit;
    display:block;
    width:60%;
    margin:auto;
    min-width:1000px;
    z-index:0;  
}
#pageImg {
    position:absolute;
    width:60%;
    min-width:1000px;
    z-index:1;
}
@media (min-width: 1000px) {
#navBarImg {
    top: 5vw;
}
#navBarLogoImg {
    top: 5vw;

}
#navMenuPart1 {
    top: 5vw;
left:60%;
}
}
#navBarImg {
    position:absolute;
    width:60%;
    min-width:1000px;
top:50px;
    z-index:2;
}
#navBarLogoImg {
    position:absolute;
    width:11.75%;
    min-width:190px;

top:50px;
    z-index:3;
}
#navMenuPart1{
    position:absolute;
    width:100%;
    min-width:1000px;
    left:20px;
  top:50px;
    z-index:3;
    color: #FFFFFF; 
}
li { font-size: 1.2vw; }
ul{ white-space: nowrap; }
.navMenuItems ul { list-style:none; text-align:center; padding:10px 0; }
.navMenuItems ul li { display:inline; padding:15px; letter-spacing:2px; }
.navMenuItems ul li a { text-decoration:none; color:#3a3a3a; }
.navMenuItems ul li a:hover {color:#F19433;}

</style>

</head>
<body>
<div id="page">
    <img id="pageImg" src="../Navigation/backgroundImg.png" />
    <div id="navBar">
        <img id="navBarImg" src="../Navigation/navBarBGImg.png" />
        <img id="navBarLogoImg" src="../Navigation/navLogoImg.png" />
    </div>
    <div id='navMenuPart1' class="navMenuItems">
        <ul>
            <li><a href='#'><span>Research</span></a></li>
            <li><a href='#'><span>Team</span></a></li>
            <li><a href='#'><span>News</span></a></li>
            <li><a href='#'><span>Courses</span></a></li>
            <li><a href='#'><span>Outreach</span></a></li>
            <li><a href='#'><span>Contact</span></a></li>
        </ul>
    </div>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>

       causeRepaintsOn = $("li");

        $(window).resize(function() {
         causeRepaintsOn.css("z-index", 1);
       });

    </script>
    <header></header>
</div>
</body>
</html>

【问题讨论】:

  • 如果我是正确的,你必须在脚本标签中添加类型type="text/javascript,否则它是无效的。

标签: html css


【解决方案1】:

编辑:

这是 FIDDLE - 您可以调整页面大小并查看它是否正常工作。


看到这个css-tricks article

这是一个 webkit 错误(Chrome、Safari),它不会出现在 IE10+ 和 FF 19+ 上

在那篇文章中,作者给出了一个针对 webkit 浏览器的 Jquery 解决方案:

要解决此问题(允许在不刷新页面的情况下调整大小),您需要 导致元素上的“重绘”。我使用了 jQuery,只是摆弄着 每个元素(在这种情况下是不相关的)z-index 值,它触发 重绘。

causeRepaintsOn = $("h1, h2, h3, p");

$(window).resize(function() {
  causeRepaintsOn.css("z-index", 1);
});

所以你的页面看起来像这样:

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Demo</title>
</head>
<body>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>

       causeRepaintsOn = $("li");

        $(window).resize(function() {
         causeRepaintsOn.css("z-index", 1);
       });

    </script>
    <header></header>
    ... etc etc..
</body>
</html>

【讨论】:

  • 我如何把它放到我的html/css中
  • 你为什么有2个头?
  • header 不是 head.. 但你可以忽略那部分 - 我想告诉你如何加载 jquery
  • @BDGapps 我加了一个小提琴
  • 我正在运行 safari 6.0.3,但它不会在我的页面上调整大小。它确实在小提琴
【解决方案2】:

使用,

font-size:1em;

font-size:100%; // based on body default declaration

【讨论】:

    【解决方案3】:

    如果你有这样的 CSS:

    #body #mytext {
       font-size: 50%;
    }
    

    你可以像这样在 jQuery 中动态调整大小:

    $(window).resize(function(){
        $('#body #mytext').css('font-size',($(window).width()*0.5)+'px');
    });
    

    【讨论】:

    • 如何将它添加到我的代码中。看看我上面的代码。我试着把它放进去,但做错了。
    • 你应该在你的头脑中添加这个函数的脚本标签和样式中的css。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    相关资源
    最近更新 更多