Chrome не получает округленные границы CSS - PullRequest
6 голосов
/ 23 декабря 2011

У меня проблема с отображением моих закругленных углов в выпадающем меню, которое я построил с нуля.Закругленные углы отображаются очень хорошо в Firefox, но Chrome и IE9, похоже, не хотят рендерить мои углы.Я изменил свой вызов закругленного угла на последний элемент <li> в раскрывающемся списке, а также на последний элемент <a>, который я отобразил в виде блоков со свойствами ширины и высоты, но, похоже, ничего не помогло!

Так что я решил опубликовать здесь, чтобы посмотреть, сможет ли кто-нибудь подтолкнуть меня в правильном направлении.

Сайт все еще находится на ранней стадии разработки, поэтому не беспокойтесь о избыточных ссылочных ссылках.1007 *

Мой HTML:

<nav>
        <ul id="mainNav">
            <li>
                <a href="highlevel.html" class="autos"></a>
                <ul>
                    <li><a href="subcategory.html">News</a></li>
                    <li><a href="subcategory.html">Reviews</a></li>
                    <li><a href="subcategory.html">Car Tech</a></li>
                    <li><a href="subcategory.html">Fuel Economy &amp; Safety</a></li>
                    <li><a href="subcategory.html">Buying &amp; Selling</a></li>
                    <li><a href="subcategory.html">Everything Else</a></li>
                </ul>
            </li>
            <li>
                <a href="highlevel.html" class="lifestyles"></a>
                <ul>
                    <li><a href="subcategory.html">Music</a></li>
                    <li><a href="subcategory.html">Food</a></li>
                    <li><a href="subcategory.html">Travel</a></li>
                    <li><a href="subcategory.html">Shopping</a></li>
                    <li><a href="subcategory.html">Everything Else</a></li>
                </ul>
            </li>
            <li>
                <a href="highlevel.html" class="people"></a>
                <ul>
                    <li><a href="subcategory.html">Who You Know</a></li>
                    <li><a href="subcategory.html">Who You Should Know</a></li>
                    <li><a href="subcategory.html">Everyone Else</a></li>
                </ul>
            </li>
            <li>
                <a href="highlevel.html" class="tech"></a>
                <ul>
                    <li><a href="subcategory.html">Business</a></li>
                    <li><a href="subcategory.html">Pleasure</a></li>
                    <li><a href="subcategory.html">Everything Else</a></li>
                </ul>
            </li>
            <li>
                <a href="highlevel.html" class="trends"></a>
                <ul>
                    <li><a href="subcategory.html">Online</a></li>
                    <li><a href="subcategory.html">Offline</a></li>
                    <li><a href="subcategory.html">Everything Else</a></li>
                </ul>
            </li>
        </ul>
    </nav><!-- /Main Nav -->

Мой CSS:

nav {
    display:block;
    position:relative;
    width:980px;
    height:41px;
    background:url(../../images/nav_bg.png) center top no-repeat;
    margin:0 auto;
    border-bottom:2px solid #777;
    z-index:9998;
}

#mainNav {
    display:block;
    position:relative;  
    background:#fff;
}

#mainNav li {
    float:left; 
}

#mainNav li a {
    display:block;
    position:relative;
    width:125px;
    height:41px;
    overflow:hidden;
}

#mainNav li a.autos {
    display:block;
    position:relative;
    width:125px;
    height:41px;
    background:url(../../images/nav1.png) center top no-repeat;
}

#mainNav li a.autos:hover {
    background:url(../../images/nav1.png) center -41px no-repeat;
}

#mainNav li a.lifestyles {
    display:block;
    position:relative;
    width:125px;
    height:41px;
    background:url(../../images/nav2.jpg) center top no-repeat;
}

#mainNav li a.lifestyles:hover {
    background:url(../../images/nav2.jpg) center -41px no-repeat;
}

#mainNav li a.people {
    display:block;
    position:relative;
    width:125px;
    height:41px;
    background:url(../../images/nav3.jpg) center top no-repeat;
}

#mainNav li a.people:hover {
    background:url(../../images/nav3.jpg) center -41px no-repeat;
}

#mainNav li a.tech {
    display:block;
    position:relative;
    width:125px;
    height:41px;
    background:url(../../images/nav4.jpg) center top no-repeat;
}

#mainNav li a.tech:hover {
    background:url(../../images/nav4.jpg) center -41px no-repeat;
}

#mainNav li a.trends {
    display:block;
    position:relative;
    width:125px;
    height:41px;
    background:url(../../images/nav5.jpg) center top no-repeat;
}

#mainNav li a.trends:hover {
    background:url(../../images/nav5.jpg) center -41px no-repeat;
}

/* === Dropdown Menu Styles === */

#mainNav ul {
    display:none;   
    position:absolute;  
    z-index:9998;
}

#mainNav li:hover ul {
    display:block;
    position:absolute;
    width:160px;
    height:auto;
    border-right:1px solid #999;
    border-left:1px solid #999;
    overflow:hidden;

    -moz-border-radius-topleft: 0px;
    -moz-border-radius-topright: 0px;
    -moz-border-radius-bottomright: 7px;
    -moz-border-radius-bottomleft: 7px;
    -webkit-border-radius: 0px 0px 7px 7px;
    border-radius: 0px 0px 7px 7px; 

    -webkit-box-shadow: 0px 5px 3px 0px rgba(0, 0, 0, .25);
    -moz-box-shadow: 0px 5px 3px 0px rgba(0, 0, 0, .25);
    box-shadow: 0px 5px 3px 0px rgba(0, 0, 0, .25); 
}

#mainNav li:hover ul li a {
    display:block;
    width:160px;
    height:auto;
    background:#fff;
    padding:5px 0;
    border-bottom:1px solid #999;

    font-family: 'Swiss721Light', Verdana, Arial;
    text-indent:10px;
    text-decoration:none;
    font-size:14px;
    line-height:16px;
color:#555;
}

#mainNav li:hover ul li a:hover {
    background:#eaeaea;
}

Ответы [ 3 ]

5 голосов
/ 23 декабря 2011

Вы можете сделать это следующим образом:

#mainNav li:hover ul li:last-child a{
    border-radius: 0px 0px 7px 7px;     
}

Вам также необходимо избавиться от отступа 40px слева на содержащем ul

Добавление отступов к нижней части это хорошо, но делаетэто выглядит немного грязно, особенно если вы используете границы вокруг отдельных ссылок

2 голосов
/ 23 декабря 2011

Chrome и IE не скрывают содержимое, которое выходит за границы радиуса.Ваши выпадающие ссылки в настоящее время установлены на background: white;, а нижняя переполняет скругленную границу.Поэтому белый фон ссылки будет отображаться по краю скругленной границы.Чтобы это исправить, вы можете удалить фон ссылки или добавить отступ в нижней части раскрывающегося списка.Другой вариант - установить радиус границы последнего a в каждом раскрывающемся списке.

Изменить фон:

#mainNav li:hover ul li a {
    background: #fff; /* remove this line */
    border-bottom: ... /* change to border-top */
}

Заполнение:

#mainNav li:hover ul {
    ...
    padding-bottom: 7px;
}
1 голос
/ 23 декабря 2011

это проблема переполнения ... все элементы внутри скругленного прямоугольника должны иметь одинаковый радиус границы

http://jsfiddle.net/pixelass/KZXnT/

#mainNavli > ul > li.last,
#mainNav > li ul > li.last a {
    -moz-border-radius-topleft: 0px;
    -moz-border-radius-topright: 0px;
    -moz-border-radius-bottomright: 7px;
    -moz-border-radius-bottomleft: 7px;
    -webkit-border-radius: 0px 0px 7px 7px;
    border-radius: 0px 0px 7px 7px; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...