1

我需要一些建议和帮助。我不是一个CSS人,但我想学习。

我正在尝试为我的下拉菜单调整一些 CSS。

我有以下问题:

  • 下拉按钮应该和图片一样大,只留下下拉三角形的区域。
  • 下拉三角形应在中间垂直对齐并水平居中。
  • 下拉选项应与右边框对齐并向左向内打开,而不是相反。

有人可以帮我调整一下吗?我想学习这些技术,但试错是很长的路要走。

我的代码如下:

<html>
<head>
<head>
<body>
    <style>
        body {
            background-color: white;
            font: normal 11px Tahoma,Verdana,Arial,Sans-Serif;
            color: #222;
            height: 380px;
        }

        .dropdown {
            display: block;
            display: inline-block;
            margin: 0px 3px;
            position: relative;
        }

        /* ===[ For demonstration ]=== */

        .dropdown { margin-top: 25px }

        /* ===[ End demonstration ]=== */

        .dropdown .dropdown_button {
            cursor: pointer;
            width: auto;
            display: inline-block;
            padding: 0px 0px;
            border: 1px solid silver;
            -webkit-border-radius: 0px;
            -moz-border-radius: 0px;
            border-radius: 2px;
            font-weight: bold;
            color: #717780;
            line-height: 16px;
            text-decoration: none !important;
            background: white;
        }

        .dropdown input[type="checkbox"]:checked +  .dropdown_button {
            border: 1px solid #3B5998;
            color: white;
            background: silver;
            -moz-border-radius-topleft: 2px;
            -moz-border-radius-topright: 2px;
            -moz-border-radius-bottomright: 0px;
            -moz-border-radius-bottomleft: 0px;
            -webkit-border-radius: 2px 2px 0px 0px;
            border-radius: 2px 2px 0px 0px;
            border-bottom-color: silver;
        }

        .dropdown input[type="checkbox"] + .dropdown_button .arrow {
            display: inline-block;
            width: 1px;
            height: 1px;
            border-top: 5px solid silver;
            border-right: 5px solid transparent;
            border-left: 5px solid transparent;
        }

        .dropdown input[type="checkbox"]:checked + .dropdown_button .arrow { border-color: white transparent transparent transparent }

        .dropdown .dropdown_content {
            position: absolute;
            border: 1px solid #777;
            padding: 0px;
            background: white;
            margin: 0;
            display: none;
        }

        .dropdown .dropdown_content li {
            list-style: none;
            margin-left: 0px;
            line-height: 16px;
            border-top: 1px solid #FFF;
            border-bottom: 1px solid #FFF;
            margin-top: 2px;
            margin-bottom: 2px;
        }

        .dropdown .dropdown_content li:hover {
            background: silver;
        }

        .dropdown .dropdown_content li a {
            display: block;
            padding: 2px 7px;
            padding-right: 15px;
            color: black;
            text-decoration: none !important;
            white-space: nowrap;
        }

        .dropdown .dropdown_content li:hover a {
            color: white;
            text-decoration: none !important;
        }
        .dropdown input[type="checkbox"]:checked ~ .dropdown_content { display: block }
        .dropdown input[type="checkbox"] { display: none }
    </style>    

    Here there will be a lot of text and a lot of other menu buttons. So hope the angle of the dropdown will open to the left instead of the right.
    <div class="dropdown" id="dropdown">
        <input type="checkbox" id="drop1" />
        <label for="drop1" class="dropdown_button"><img src="http://ichef.bbci.co.uk/wwfeatures/43_43/images/live/p0/17/tx/p017txf6.jpg" height="43" width="43" /><span class="arrow"></span></label>
        <ul class="dropdown_content">
            <li><a href="#">Privacy settings</a></li>                       
            <li><a href="#">Account settings</a></li>
            <li><a href="#">Logout</a></li>                                
        </ul>

    </div>
</body>
</html>

现在我设法通过更正来修复图像周围的边框,padding padding: 0px 0px;但后来我感觉就像在盲目工作......有人可以帮我指出在哪里修复我的调整吗?

4

1 回答 1

1

给你的跨度一个 'arrowSpan' 的 id 并在你的 css 中应用这个样式:

#arrowSpan{
    display:block;
    margin-left:17px;
    margin-top:2px;
    margin-bottom:5px;
}

还可以添加position:absolute;和添加right:0到您的.dropdown .dropdown_content样式中。

这是一个小提琴:http: //jsfiddle.net/zsp7t/1/

至于在外面点击时折叠下拉,是可以的。网上有很多使用 jQuery 的示例,这里有几个可以帮助您入门:

您还提到您想了解更多信息,因此请查看这些网站以帮助您提高技能:

于 2013-07-24T14:17:54.237 回答