Разве высота и ширина не относятся к размаху? - PullRequest
231 голосов
/ 22 марта 2010

Всего вопросов о нубах, но здесь.

CSS

.product__specfield_8_arrow {

    /*background-image:url(../../upload/orng_bg_arrow.png);
    background-repeat:no-repeat;*/
    background-color:#fc0;
    width:50px !important;
    height:33px !important;
    border: 1px solid #dddddd;
    border-left:none;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    border-bottom-left-radius:0px;
    border-top-left-radius:0px;
    -moz-border-radius-bottomleft:0px;
    -moz-border-radius-topleft:0px;
    -webkit-border-bottom-left-radius:0px;
    -webkit-border-top-left-radius:0px;
    margin:0;
    padding:2px;
    cursor:pointer;
}​​​

HTML

<span class="product__specfield_8_arrow">&nbsp;</span>​

Fiddle

По сути, я пытаюсь эмулировать кнопку, сделать интервал (или что-то еще) похожим на кнопку рядом с полем ввода, которое на самом деле не должно быть единицей из-за генератора автозаполнения, который генерирует ошибки в OnEnter. Думаю, сейчас это будет быстрым решением, но, очевидно, нет.

Спасибо.

Ответы [ 8 ]

381 голосов
/ 22 марта 2010

Span является встроенным элементом. Он не имеет ширины или высоты.

Вы можете превратить его в элемент уровня блока, тогда он примет ваши директивы измерения.

span.product__specfield_8_arrow
{
    display: block; /* or inline-block */
}
35 голосов
/ 22 марта 2010

Попробуйте использовать div вместо span или использовать CSS display: block; или display: inline-block; & mdash; span по умолчанию является встроенным элементом, который не может принимать свойства width и height.

18 голосов
/ 17 июня 2016

Вдохновленный @Hamed, я добавил следующее, и у меня это сработало:

display: inline-block; overflow: hidden; 
9 голосов
/ 20 мая 2013

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

span {display:block;}
8 голосов
/ 27 марта 2014

Согласно комментарию от @Paul, если указан display: block, span перестает быть встроенным элементом и элементом после того, как он появляется на следующей строке.

Я пришел сюда, чтобы найти решение моей проблемы с высотой пролета, и я нашел собственное решение

Добавление overflow:hidden; и сохранение его в строке решит проблему, только что протестированную в режиме IE8 Quirks

7 голосов
/ 22 марта 2010

span по умолчанию отображаются в строке, что означает, что они не имеют высоты и ширины.

Попробуйте добавить display: block к вашему диапазону.

5 голосов
/ 22 марта 2010

Span начинается как встроенный элемент.Например, вы можете изменить его атрибут отображения на block, и его атрибуты высоты / ширины начнут действовать.

0 голосов
/ 25 июня 2019

span {display:block;} также добавляет разрыв строки.

Чтобы избежать этого, используйте span {display:inline-block;}, затем вы можете добавить ширину и высоту для встроенного элемента, а также выровнять его внутри блока.:

span {
        display:inline-block;
        width: 5em;
        font-weight: normal;
        text-align: center
     }

подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...