Я вполне уверен, что ключевое слово константы не подразумевает, что данные не могут быть изменены / постоянные, только что данные будут рассматривать как только для чтения. Рассмотрите это:
const volatile int *const serial_port = SERIAL_PORT;
, который является допустимым кодом. Как может энергозависимый, и константа сосуществуют? Простой. энергозависимый говорит компилятору всегда читать память при использовании данных, и константа говорит компилятору создавать ошибку, когда попытка предпринята для записи в память с помощью serial_port указателя.
константа помогает оптимизатору компилятора? Нет. Нисколько. Поскольку constness может быть добавлен к и удален от данных до кастинга, компилятор не может выяснить, являются ли данные константы действительно постоянными (так как бросок мог быть сделан в различной единице перевода). В C++ у Вас также есть изменяемое ключевое слово еще более того.
char *const p = (char *) 0xb000;
//error: p = (char *) 0xc000;
char **q = (char **)&p;
*q = (char *)0xc000; // p is now 0xc000
то, Что происходит, когда попытка предпринята для записи в память, которая действительно только для чтения (ROM, например), вероятно, не определяется в стандарте вообще.
высота
и ширина
могут применяться только к элементам со свойством hasLayout . Элемент SPAN по умолчанию не реализует это свойство.
Поскольку встроенный блок не работает правильно во всех основных браузерах, я бы рекомендовал использовать трюк с размерами заполнения:
<span style="font-size:30px; padding-left:30px; background:red;"> </span>
Возможно, вам придется немного поиграть с размерами, потому что global font-size
, font-family
и line-height
могут повлиять на реальный размер вашего окна.
Изменить: Рисование пустых прямоугольников - это бит, который я пропустил, но я думаю, что в любом случае это довольно очевидно из моего кода. Если нет, то это еще один пример:
<style type="text/css">
.box1 { font-size:15px; font-family:Tahoma; padding-left:15px; border:1px solid red; overflow:hidden; }
.box2 { font-size:10px; font-family:Tahoma; padding-left:15px; border:1px solid green; overflow:hidden; }
.box3 { font-size:5px; font-family:Tahoma; padding-left:5px; border:1px solid blue; overflow:hidden; }
</style>
This is red box: <span class="box1"> </span> and this is green box: <span class="box2"> </span>.
And this is another box, this time it is blue: <span class="box3"> </span>.
И этот код производит это как вывод: alt text http://img413.imageshack.us/img413/5865/boxes.png
И поскольку мы помещаем & nbsp;
внутри каждого диапазона, этот трюк будет работать во всех браузерах.
Вы можете использовать display: inline-block
. Хотя это не будет работать в старых браузерах, таких как IE 6.
В зависимости от того, где вы хотите разместить элементы, вы можете выполнить display: block; float: [влево или вправо]
Вы можете попробовать параметр отображения css inline-block
. Но ваш опыт может отличаться от этого.
display: inline-block
Встроенный блок помещается в строку (т.е. в той же строке, что и соседний контент), но он ведет себя как блок.
На этой странице много хороших предложений. Мне интересно, однако, когда вы пытались использовать GIF, была ли граница частью вашего изображения?
Как насчет использования прозрачного GIF-изображения 1x1, размер которого можно изменить с помощью CSS, а затем применить к изображению border: 1px сплошной черный
. Если вы попытаетесь включить границу как часть изображения, я понимаю, что при растяжении оно будет выглядеть нечетким. Но прозрачный GIF с рамкой CSS должен выглядеть достаточно красиво, если только у вас нет другого необходимого стиля ...
Удачи!
Я считаю, что это работает.
<span style="display:inline-block;border:1px solid #00ff00;width:150px;height:50px;"></span>
почти уверен, что это будет работать в разных браузерах
Как насчет
<div>
<div style="border: 1px solid #000; height: 10px; width: 17px; float: left"></div>
<div style="border: 1px solid #000; height: 10px; width: 17px; float: left"></div>
<br style="clear: both;" />
</div>