IE 7 и 8 не могут загрузить (или, возможно, правильно каскадно) часть таблицы стилей - PullRequest
2 голосов
/ 31 марта 2012

У меня странная проблема, IE 7 и 8 не загружают около 80% одной из моих таблиц стилей, они достигают точки, а затем не загружаются дальше.Инструменты разработчика IE распознают выгруженные свойства, но они не применяются в браузере.Все следующие таблицы стилей загружаются правильно, и ни у одного другого браузера с ними нет проблем.Кроме того, сайт-прототип HTML, который примерно на 90% совпадает с готовой версией, не имеет проблем.

Сайт создается на Wordpress локально, но я загрузил исходный код для домашней страницы здесь , если это поможет (таблица стилей, которая не загружается правильно, называется '760.css').Кроме того, (правильно работающий) прототип можно просмотреть здесь , но между этой версией и преобразованием в Wordpress были сделаны некоторые изменения.

Таблица стилей, вызывающая проблемы (кажется, перестает загружаться послеul # menu-site-nav свойства были применены):

/*
Created by Mikey Clarke | @mikey_clarke
*/</p>

<code>#nav-bar {
    font-size: 0.95em;
    padding: 0px 0px;
    }

#nav-bar ul {
    text-align: left;
    }

    ul#menu-site-nav {
        width: 95%;
        margin: 0 auto;
        }

    #nav-bar li.primary-nav {
        width: 14.584%;
        padding: 20px 1.042%;
        float: left;
        text-transform: uppercase;
        }

        #nav-bar li.primary-nav:first-child {
            display: block;
            padding-left: 1.042%;
            }

        #nav-bar li.primary-nav:nth-child(2) {
            padding-left: 1.042%; /* restore outer padding */
            }

        #nav-bar li.primary-nav:last-child {
            padding-right: 1.042%; /* restore outer padding */
            }

            #nav-bar li ul {
                display: block;
                width: 100%;
                text-transform: capitalize;
                }

                #nav-bar li ul li {
                    float: none;
                    padding: 0px 0px;
                    display: list-item;
                    }

    #nav-bar li.shield-logo {
        background: url(/wp-content/themes/itsa/images/shield.png) no-repeat;
        background-size: 25px;
        background-position: 10px 23px;
        }

        #nav-bar .shield-logo span {
            text-indent: 1000%;
            white-space: nowrap;
            overflow: hidden;
            display: block;
            padding-bottom: 12px;
            }

#masthead {
    font-size: 2.25em;
    padding: 35px 0;
    }

    #masthead a {
        display: block;
        padding: 0 160px;
        }

#content {
    width: 82.279%;
    padding-right: 1.042%;
    float: left; 
    }

.sidebar {
    width: 14.586%;
    float: left;
    text-align: right;
    padding: 0px 1.042% 20px 1.042%;
    background: none;
   -webkit-box-shadow: none;
   -moz-box-shadow: none;
    box-shadow: none;
    border: none;
    }

#section-nav>ul>li>span {
    padding: 4px 4%;
    border: 1px solid transparent;
    margin-bottom: 4px;
    }

    #section-nav li ul li {
        padding: 4px 4%;
        margin: 4px 0px;
        border: 1px solid transparent;
        }

    #section-nav>ul>li.current-menu-item>span,
    #section-nav>ul>li>ul>li.current-menu-item {
        -webkit-border-radius: 8px;
        -moz-border-radius: 8px;
        border-radius: 8px;
        border: 1px solid #f6f6f6;
        -webkit-box-shadow: inset 0px 1px 4px rgba(0,0,0,0.3);
        -moz-box-shadow: inset 0px 1px 4px rgba(0,0,0,0.3);
        box-shadow: inset 0px 1px 4px rgba(0,0,0,0.3);
        background-color: #ececec;
        background: rgba(0,0,0,0.02);
        }

#breadcrumbs {
    font-size: 0.9em;
    }

/* Restore content only useful for users browsing from desktops */
.mobile-superfluous {
    display: block;
    }

@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
        only screen and (-o-min-device-pixel-ratio: 3/2),
        only screen and (min--moz-device-pixel-ratio: 1.5),
        only screen and (min-device-pixel-ratio: 1.5) {
    #nav-bar li.shield-logo {
        background: url(/wp-content/themes/itsa/images/shield@2.png) no-repeat;
        background-size: 25px;
        }
    }
</code>

Ответы [ 2 ]

3 голосов
/ 31 марта 2012

После переписывания всей таблицы стилей вручную и тестирования после каждой строки, кажется, что проблема в медиа-запросе в конце.Я удалил каждую часть медиазапроса по отдельности и совершенно не могу определить, какая часть IE задыхается.Я также скопировал и вставил медиазапрос в другую таблицу стилей, и эта таблица стилей прекрасно загружается в IE 7 и 8. Очень странно.

Поскольку он работает без медиазапроса, я переместил его в другую таблицу стилейгде работает нормально.

1 голос
/ 31 марта 2012

Похоже, ваша проблема в том, что некоторые используемые вами псевдоселекторы CSS не поддерживаются этими браузерами, а именно :nth-child и :last-child.

И хотя это должно сработать, у них могут возникнуть проблемы с непосредственным дочерним селектором, используемым без пробелов (это всего лишь предположение, но не далеко). Т.е. section-nav>ul>li должно быть #section-nav > ul > li

Имейте в виду, что IE7 и я думаю, что 8 также не поддерживают rgba.

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

Для получения дополнительной информации о точной спецификации, которую должен поддерживать IE7 +, прочитайте эту превосходную статью о селекторах CSS2.1

...