我目前有一个可以正常工作的纯 CSS 下拉/大型菜单。布局是流动的(基于百分比),我也在使用媒体查询。
我遇到的问题是我需要检测菜单项li是否靠近浏览器边缘并align使用 CSS 更改属性。
我猜我需要使用 jQuery 来实现这一点,但真的不知道如何。
看看这个。它可能不优雅,但如果一个li靠近左侧或顶部,它会变成粉红色。你应该能够完成这个谜题:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
<style type="text/css">
    ul{
    list-style:none;
    }
    li{
    display:inline-block;
    margin: 5px;
    width: 100px;
    height: 100px;
    background-color:silver;
    }
</style>
</head>
<body>
    <ul>
        <li></li><li></li><li></li><li></li><li></li>
        <li></li><li></li><li></li><li></li><li></li>
        <li></li><li></li><li></li><li></li><li></li>
        <li></li><li></li><li></li><li></li><li></li>
        <li></li><li></li><li></li><li></li><li></li>
    </ul>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="application/javascript">
        $(document).ready(function(){
            var items = new Array();
            var i;
            function paintPink(){
                $('ul > li').css('background-color','silver');
                for (i=1;i<=$('ul').children().length;i++){
                    if ((($('ul > li:nth-child(' + i + ')').offset().left) < 60) || (($('ul > li:nth-child(' + i + ')').offset().top) < 60)){
                        $('ul > li:nth-child(' + i + ')').css('background-color','fuchsia');
                    };
                };
            };
            $(window).load(paintPink);
            $(window).resize(paintPink);
        });
    </script>
</body>
</html>
祝你好运。