检测页面大小并在宽度低于500px时进行css更改

时间:2013-10-21 16:54:44

标签: javascript jquery html css width

我正在开发一个网站,我想创建一个脚本来检测页面何时超过500px以及何时低于此以便我可以对代码进行更改。我当前的代码在页面的末尾有一些链接,如页脚,当它低于500px时,我希望它们彼此接近,例如;

<div class="footer-titles">
    <ul class="footer-titles-ul">
        <li><h class="titles">Link 1</h></li>
        <li><h class="titles">Link 2</h></li>
        <li><h class="titles">Link 3</h></li> 
    </ul>
</div>

我的css

.footer-titles{width: auto; min-width: 800px; left: 0px; right: 0px; position: absolute; bottom: 210px;}
.footer-titles-ul {list-style: none; padding-left: 120px;}
.footer-titles-ul li {padding-right: 90px; display: inline;}

因此,当页面低于500px时,我希望 .footer-titles-ul li 中的 padding-right 30px 但是,如果页面返回超过 500px以恢复正常。

3 个答案:

答案 0 :(得分:4)

您不需要JavaScript,因此不应使用JavaScript。您需要CSS3媒体查询(除非您需要使用polyfill无法实现的旧浏览器支持)。

你会想要这样的东西来改变:

@media screen and (max-width: 500px) {
  /* UNDER 500px CSS here */

  .class{
   color: red;
  }
}

答案 1 :(得分:3)

使用媒体查询是可行的方法。只需将其添加到CSS文件的底部:

@media only screen and (max-width: 500px) {
    .footer-titles-ul {padding-right: 30px;}
}

答案 2 :(得分:0)

如果你想要jQuery,我认为这对你有用。但话说回来,我会推荐其他人说的CSS媒体查询。

$(document).ready(function(){
    var detectViewPort = function() {
        var Wwidth = $(window).width();
        if (Wwidth < 500){
            $('.footer-titles-ul li').css('padding-right', '30px');
         }
        if (Wwidth > 500){
            $('.footer-titles-ul li').css('padding-right', '90px');
        }
    };

    $(function(){
      detectViewPort();
    });

    $(window).resize(function () {
       detectViewPort();
    });
});