2013-12-09 6 views
0

У меня есть 3 тега div. Я должен разместить его по прямой. в моем коде это 2,3,4. 2 и 3 находятся в прямой линии, но 4 идет вниз вниз. Я новичок в html и css. Точно мой проект - сделать комнату в перспективе в html. и нарисуйте содержимое с помощью html canvas. Но поразило начало. Эксперты, пожалуйста, помогите мне выйти. Я завершаю весь проект в Jsfiddle, и сценарий, который мне нужен, написан ниже.Тег Div, выравнивание по прямой

http://jsfiddle.net/kGpdM/855/

Html: 

<div id="wall"> 
<div id="sidewall1" align="left">2</div> 
<div id="center" align="center">3</div> 
<div id="sidewall2" align="right">4</div> 
</div> 

css: 

#sidewall1 { 
float:left; 
width:250px; 
height:500px; 
} 
#sidewall2 { 
float:right; 
width:250px; 
height:500px; 
} 
+5

Ваш JSFiddle не совпадает с описанием проблемы. –

+0

Извините, я скопировал ссылку неправильно, извините. Я сейчас редактировал. Пожалуйста, проверьте это. – user3077461

ответ

0

Вы не упомянули о собственности Я БЫ ' center ', так что div сам взял ширину по умолчанию.
Div 4 спускается, потому что общая ширина (ширина id 'row' здесь 1000px) - ширина div 3 = менее 250 пикселей.
Также, если вы разрабатываете css, тогда старайтесь избегать встроенного стиля, используя только CSS.

Here is the modified code. 

HTML 

<div id="container"> 
    <div id="roof">1</div> 
    <div id="wall"> 
     <div id="sidewall1">2</div> 
     <div id="center" >3</div> 
     <div id="sidewall2">4</div> 
    </div> 
    <div id="floor">5</div> 
</div> 

CSS 

body { 
margin-left: 0px; 
margin-top: 0px; 
margin-right: 0px; 
margin-bottom: 0px; 
} 
#roof { 
padding: 0px; 
height: 250px; 
width: 1000px; 
margin-right: 0px; 
margin-left: 0px; 
border-top-width: 0px; 
border-right-width: 0px; 
border-bottom-width: 0px; 
border-left-width: 0px; 
border-top-style: solid; 
border-right-style: solid; 
border-bottom-style: solid; 
border-left-style: solid; 
} 
#wall { 
padding: 0px; 
height: 500px; 
width: 1000px; 
margin-right: 0px; 
margin-left: 0px; 
border-top-width: 0px; 
border-right-width: 0px; 
border-bottom-width: 0px; 
border-left-width: 0px; 
border-top-style: solid; 
border-right-style: solid; 
border-bottom-style: solid; 
border-left-style: solid; 
} 
#floor { 
padding: 0px; 
height: 250px; 
width: 1000px; 
margin-right: 0px; 
margin-left: 0px; 
border-top-width: 0px; 
border-right-width: 0px; 
border-bottom-width: 0px; 
border-left-width: 0px; 
border-top-style: solid; 
border-right-style: solid; 
border-bottom-style: solid; 
border-left-style: solid; 
} 
#sidewall1 { 
    float:left; 
    width:250px; 
    height:500px; 

} 
#sidewall2 { 
    float:left; 
    width:250px; 
    height: 500px; 
} 
#center { 
    float:left; 
    width:250px; 
    height: 500px; 
} 
+0

Отлично. работал :). – user3077461

0

Атрибут стиля display:inline; добавления всех классов или н.о.р. ых и есть для дивы 2,3,4 будет делать.

+0

проверить эту скрипку, я только что добавил отображение встроенных атрибутов к стилям ур div, поможет ..http: //jsfiddle.net/kGpdM/851/ – codebreaker

+0

извините. 2 и 3 находится в прямой линии. Но 4 падает. Я хочу все по прямой. – user3077461

+0

have u проверил меня скрипку, что я опубликовал ее, показывает все в одной строке, одна вещь, которую нужно изменить, - это указать процентное значение witdth, чтобы div и объявили, что wud do .. – codebreaker

0

Ширина экрана компьютера занимает всего несколько пикселей. Это осложняется тем фактом, что существует множество различных ширины экрана. Например, у вас есть мобильные телефоны, планшеты, ноутбуки и настольные компьютеры. Но даже те могут иметь разную ширину. Поэтому вместо использования width: 250px; , лучше сделать все те divs в процентах. Смотри ниже.

#sidewall1 { 
float:left; 
width:25%; 
height:500px; 
} 

#center { 
float: left; 
width: 49%; 
} 

#sidewall2 { 
float:left; // Change this to float left 
width:25%; 
height:500px; 
} 

отрегулируйте проценты в соответствии с тем, как вы этого хотите.

+0

Вам не нужно всплывать все, это испортит контент ниже. – randak

+0

^Как ?? Поплавки можно легко очистить с помощью 'clear: both' ... –

+0

@codehorse, вам не нужно устанавливать' # center' в 49% ... это может быть 50%. Просто примените 'box-sizing: border-box;' к каждому из свойств CSS. –

0

Изменение div s до inline может испортить другой стиль. Вместо этого вы должны изменить свой CSS, чтобы центральный div был включен последним. Я добавил цвета фона на ваш CSS, чтобы продемонстрировать:

jsFiddle

HTML

<div id="wall"> 
    <div id="sidewall1">2</div> 
    <div id="sidewall2">4</div> 
    <div id="center">3</div> 
</div> 

CSS

#sidewall1 { 
    float:left; 
    width:250px; 
    height:500px; 
    background-color: yellow; 
} 
#center { 
    display: block; 
    background-color: green; 
} 
#sidewall2 { 
    float:right; 
    width:250px; 
    height:500px; 
    background-color: red; 
} 
+0

извините. 2 и 3 находится в прямой линии. Но 4 падает. Я хочу все по прямой. – user3077461

+0

Вы посмотрели на скрипку?Они прямы. Единственная причина, по которой 2 и 4 выше, - это то, что вы устанавливаете на них высоту. – randak

+0

Да. Я видел 2 и 3 на ул. линия. но 4 меньше 2 и 3. Мне нужно это на ул. линия. мой выход 1000 * 1000 пикселей. 2 и 4 с шириной 250 пикселей и высотой 500 пикселей. и 3 с шириной 500 пикселей и высотой 500 пикселей. Я хочу такое разделение. – user3077461

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