2013-09-23 3 views
4

Я пытаюсь создать игровое поле с использованием div s с разными background-color s, поэтому я написал несколько простых css (я просто выясню, как это сделать на этом этапе, и я написал div s вручную - так что im не включая html/js)div с отображением поля

.grass { 
    background-color: oliveDrab; 
} 

.dirt { 
    background-color: sandyBrown; 
} 

div{ 
    height: 25px; 
    width: 25px; 
    display: inline-block; 
    margin: 0; 
} 

, когда я его визуализировал, и был запас. как так:

margin added

так я проверил поджигатель, и это показывает, marginborder и padding является 0!!

no margin in style

DEMO fiddle.

У меня возникло ощущение, что я пропустил некоторые чрезвычайно простые знания css здесь.

+1

Атрибут ID должен быть уникальным. Похоже, у вас есть тонна HTML-элементов с идентификатором «доска». –

+0

Вы также можете посмотреть в поле box-size: border-box; ' http: //www.paulirish.com/2012/box-sizing-border-box-ftw/ –

+0

@CoryDanielson Я отметил, что это всего лишь тест, я написал это путем копирования, но спасибо вам в любом случае. –

ответ

1

согласен с @ j08691: Инлайн и элементы уровня встроенного блока чувствительны к белому пространству.

Но нет необходимости корректировать свой HTML-разметку с:

div { 
    height: 25px; 
    width: 25px; 
    display: block; 
    float: left; 
} 

br { 
    clear: both; 
} 

fiddle.

+0

@tryingToGetProgramming: Бонус, бросьте br's в свой html и используйте nth-child. Например: div: nth-child (6n + 7) {clear: left; } – allcaps

4

Это потому, что есть inline-block элементов.

Либо удалите пробел в разметке, добавьте отрицательный запас или используйте поплавковые элементы, а не display:inline-block.

Here is another example:

Вероятно, лучшим решением.

body { 
    width:150px; 
} 
div { 
    float:left; 
} 

jsFiddle with negative margins

jsFiddle with white space removed

+3

Третий: дисплей: блок; плыть налево; и br {clear: both;}? – allcaps

+0

@allcaps это лучший ответ, который я видел до сих пор, если вы сделаете этот ответ, я соглашусь. –

+0

@tryingToGetProgrammingStraight Я включаю поплавки в моем обновлении .. http://jsfiddle.net/ydaWg/19/ –

6

Линейные и элементы уровня встроенный блок чувствительны к белому пространству.

Вот пример jsFiddle вашего демонстрационного примера с пробелом в первой строке.

jsFiddle example

<div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div> 
+0

omfg Я не понял, что было место. –

+0

Помимо удаления пробела, вы можете увидеть этот сайт для нескольких других методов использования http://davidwalsh.name/remove-whitespace-inline-block – j08691

+0

, что создавало бы очень уродливое и трудное для работы с HTML. Кроме того, идентификаторы должны быть исправлены. –

3

Поскольку вам не нужно устанавливать текст font-size стиль 0. Таким образом, белые пробелы не будут мешать.

body { 
    font-size: 0px; 
} 

Working demo

+0

Это также хороший небольшой взлом, однако, если вы * * использовали * шрифт, 'ems' не будет работать. –

+0

@JoshC это работает, если я внутри «контейнера» 'div', которым это будет. –

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