CSS Текстовая позиция IE / FF проблема - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть эта навигация

<div class="cookieBar">
    <div class="light first">
        <a href="#" class="ckLnk">Home</a>
    </div>
    <div class="dark">
        <img src="images/cnavR1.png" class="pointE" /><a href="#9" class="ckLnk">Cars</a>
    </div>
    <div class="light">
        <img src="images/cnavR2.png" class="pointE" /><a href="#11" class="ckLnk">Ferrari</a>
    </div>
    <div class="dark">
        <img src="images/cnavR1.png" class="pointE" /><a href="#18" class="ckLnk">Broken Ones</a>
    </div>
    <div class="light">
        <img src="images/cnavR2.png" class="pointE" /><a href="#23" class="ckLnk">No Windows</a>
    </div>
    <img src="images/cnavR1.png" class="pointE" />
    <div style="clear:both">
    </div>
</div>

С помощью CSS:

/* Cookie navigation trail */
.cookieBar
{
    background-color: #D8DFE3;
    height: 26px;
    width: 100%;
    margin-bottom: 12px;
}
.light
{
    background-color:#0F6B93;
    height: 26px;
    float:left;
}
.dark
{
    background-color:#0E3B52;
    height: 26px;
    float:left;
}
.first
{
    padding-left: 10px;
}
.ckLnk
{
    color: #ffffff;
    font-size: 11px;
    font-weight: bold;
    font-family: Arial;
    text-decoration: none; 
}
.ckLnk:hover
{
    text-decoration: underline;
}
.pointE
{
    float:left;
    padding-right:10px;
}

Мне нужно, чтобы якорная ссылка располагалась на несколько пикселей ниже, чтобы она была в центре поля Когда я делаю position:relative;top:5px; он хорошо работает в FF, но в IE довольно много пикселей. Я не могу заставить его когда-либо совпадать в обоих браузерах!

Какие-нибудь советы? IE должен быть топ: 8px; и FF должен быть топ: 4px; чтобы это выглядело правильно.

Ответы [ 5 ]

1 голос
/ 10 сентября 2010

В качестве альтернативы, для выравнивания ссылки в центре вы можете просто использовать line-height того же размера, что и высота панели навигацииВ этом случае:

.ckLnk
{
  line-height: 26px; 
}
0 голосов
/ 10 сентября 2010

Лично я бы изменил эту разметку HTML на неупорядоченный список и стилизовал бы LI, используя изображения.

будет более семантически правильным и более простым в управлении.

разметка что-то вроде:

<ul class="cookiebar">
<li class="first light"><a class="home" href="#">Home</a></li>
<!-- etc-->
</ul>

CSS для

a.home { 
  background:url(cNavR1.png); 
  display:block; 
  width:100%; 
  height:100%; 
  text-indent:-999em;
}

и т.д.

0 голосов
/ 10 сентября 2010

Решит ли проблема использование Условных комментариев?

http://en.wikipedia.org/wiki/Conditional_Comments

0 голосов
/ 10 сентября 2010

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

Попробуйте загрузить reset.css и посмотрите, не вызывает ли это ту же проблему.Таким образом, вы можете начать сужаться там, где проблема.

0 голосов
/ 10 сентября 2010

IE может прослушивать тег # в качестве примера:

#top:5px;  only works in IE,

Так что попробуйте уменьшить высоту div на 5px

#height:21px;

Не забудьте сохранить прежнюю высоту для других браузеров:

#height:21px;
height:26px;

Подождите, я забыл!

Если уменьшение с 5px не работает @ height, попробуйте увеличить его с 5px!

#height:31px;
...