2012-02-13 2 views
0

У меня есть две ссылки: покупатель и магазин. Обе эти ссылки содержат собственные левые и правые поплавки. Предполагается, что ссылка на хранилище находится в правом поплавке, но она выгружается из своего div при добавлении стиля рамки в левый поплавок. Как мне вернуть его на место? Пожалуйста, посмотрите на пример http://jsfiddle.net/JuCKU/.CSS: как я могу исправить проблему выравнивания гиперссылки?

Я полностью забыл обновить jfiddle с помощью нового кода. http://jsfiddle.net/JuCKU/3/

firefox имеет проблему выравнивания, в то время как google chrome, похоже, правильно отображает макет.

+0

Во-первых, вы имели в виду ваш последний селектор правила CSS, чтобы быть '#shopper, # store'? Я также не вижу ничего плохого в макете на Chrome 17. –

+2

Можете ли вы поставить скрипт, где разворачивается макет? Я добавил границу с #shopper, но все оставалось на месте. – Hersha

+0

@Hersha взгляните на http://jsfiddle.net/JuCKU/3/ – dottedquad

ответ

1

падения ширина от 50% до 49%. Поскольку у вас есть граница, это занимает пространство, и, предоставляя каждому div ширину 50%, общее количество бит слишком велико, а второй div немного понижается. Или избавиться от границы.

jsFiddle Пример

Изменить

#shopper, #store 
{ 
    width: 50%; 
    text-align: center; 
} 

Кому:

#shopper, #store 
{ 
    width: 49%; 
    text-align: center; 
} 
+0

спасибо, что посмотрели. Несмотря на то, что мне не нравится IE, я все равно хочу включить пользователей IE. Изменение ширины больше похоже на универсальное исправление браузера. – dottedquad

+0

Рад, что я мог помочь. – j08691

1

Это округление вопрос. Это не вопрос округления, 50% + 50% + 1px граница более 100%. Быстрая фиксация ширины чуть менее 50%.

Изменение этого:

#shopper, #store 
{ 
    width: 50%; 
    text-align: center; 
} 

для этого:

#shopper, #store 
{ 
    width: 49.9999%; 
    text-align: center; 
} 

http://jsfiddle.net/JuCKU/4/

+0

Это действительно больше проблема с коробкой. Граница выводится за пределы элемента, что делает его больше, чем вы его определяете, так как фактическая ширина div должна составлять 50% - (ширина границы). Вы можете заставить границу рисоваться внутри элемента, но я забываю, как это сделать прямо сейчас. – Hersha

+0

@ Hersha это то, что я понял, следовательно, редактирование. Что касается создания границы внутри коробки, вы думаете о 'box-sizing'? http://www.w3.org/TR/css3-ui/#box-sizing – MrMisterMan

+0

Да, это свойство, о котором я думал. – Hersha

1

Добавление границы увеличивает общий размер коробки до 50% + 1px, так что вместе их общая ширина превышает 100%, и что-то нужно дать.

Вы можете использовать свойство CSS3 box-sizing:border-box, чтобы включить границу в общую ширину 50% или, более конкретно, размер -moz-box в Firefox, -webkit-box-size в Chrome/Safari и просто размер окна в Opera. К сожалению, IE еще не поддерживает это.

Поэтому добавьте это в свой код.

#shopper, #store { 
    -moz-box-sizing:border-box; 
    -webkit-box-sizing:border-box; 
    box-sizing:border-box; 
} 

Подробнее - http://www.css3.info/preview/box-sizing/

Как уже отмечалось другими пуленепробиваемые решение во всех браузерах, чтобы уменьшить ширину ваших ящиков на фракционной менее 50%.

1

просто дать margin-right:-1px в вашем shopper div

#shopper 
{ 
    float: left; 
    border-right: 1px solid #ccc; 
    margin-right:-1px; 
} 

Проверьте это http://jsfiddle.net/JuCKU/6/

ИЛИ

вы можете использовать CSS3 box-sizing свойство для этого, но это работа до IE8 & выше.

Проверить этот http://jsfiddle.net/JuCKU/7/

+0

Проблема с применением отрицательного поля заключается в том, что остальная часть вашего контента сместится вместе с ним. Это может привести к тому, что все выглядит смешно, если у вас есть другие границы, которые совпадают с ним. – Hersha

+0

@ Hersha я даю два ответа сначала в соответствии с OP Mark-Up и вторым, если OP положит на него что-то новое. – sandeep

+0

Я знаю. Просто указывая на побочный эффект вашего первого метода, не пытаясь его обесценить. :) – Hersha

Смежные вопросы