Jump to content
  • 0

Как сделать так чтобы элементы DIV перестали переходить на новую строку?


Guest comhunt
 Share

Question

Guest comhunt

Постановка задачи:

Имеется два слоя. Между ними должен находится просто текст (не в слое!! а просто текст).

Пример

<div id='a'></div>текст<div id='b'></div>

Вопрос:

Как сделать так чтобы вся эта конструкция находилась в одной строке и слой 'b' не переносился на новую строку?

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0
Guest comhunt
<div id='a' style="float:left;"></div>текст<div id='b'></div>

например так

Данный способ с заданием у одного или у двух DIVов стиля style="float:left;" Не работает! второй DIV переносится таки на новую строку...

Link to comment
Share on other sites

  • 0

гы :D всегда делал так как написал выше (если честно то про display: inline не знал....), все работало. щас начал проверять заметил что между дивами есть еще текст) тогда можно сделать что то типа

<div id='a' style="float:left;"></div>текст<div id='b' style="float:right;"></div>

но все равно способ Влада лучше

Link to comment
Share on other sites

  • 0
Guest comhunt
Или сделав DIV встроенными элементами (display: inline)

Попытался усложнить задачу:

Вставил внутрь DIV-ов таблицу

<DIV style="DISPLAY: inline"><table align=left><tr><td>asd</td></tr></table></DIV>ТЕКСТТЕКСТТЕКСТ

<DIV style="DISPLAY: inline"><table align=left><tr><td>qwe</td></tr></table></DIV>

И опять второй DIV убежал на новую строку :D

Может в таблице надо что-то прописать или задать другие стили у DIVов?

Уже какие сочитание не перепробовал и ничего не приводит к заданной цели.

Link to comment
Share on other sites

  • 0

В продолжение этой темы. А как убрать расстояние между дивом-тесктом-дивом. Всё инлайном и между ними есть отступ. Margin и padding 0px;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>testpage</title>
<style>
* {
padding:0px;
margin:0px; }
</style>
</head>
<body>

<div id="a" style="background-color:#CCCCCC; display:inline; border:1px solid green;">a</div>
<a href="#" style="background-color:#999999; border:1px solid red;">hello hello hello</a>
<div id="b" style="background-color:#CCCCCC; display:inline; border:1px solid blue;">b</div>

</body>
</html>

Link to comment
Share on other sites

  • 0

А нельзя вместо div использовать span? Тогда мороки меньше гораздо.Хотя сторонники разметки дивами меня щас закидают помидорами :D

Второй див может сбегать на новую строку из-за того что общая ширина элементов больше ширины окна и они просто не помещаются в одну строку.

Link to comment
Share on other sites

  • 0

2happyproff, если проблема в ИЕ, тогда font-size: 0;

2Ogalig, использовать span для разметки - ббррр, для этого есть div.

видимо автору надо построить обычный макет на флотах.. или меню на флотах...

только он не может этого объяснить.

Link to comment
Share on other sites

  • 0
2happyproff, если проблема в ИЕ, тогда font-size: 0;

проблема была в ff3 & chrome, остальных даже не проверял, но решилось через font-size:0;

А основная проблема display:inline это потеря элементом блочных свойств, как следствие игнорирование им, к примеру, widht и height. Из-за этого невозможно оформить так к примеру два дива, в левом меню, в правом контент без использования каких то еще дивов или таблиц, что очень печально.

"Используй float!" скажете вы, но и здесь есть проблема.

К примеру:

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

Если для меню и контента использовать float, то блок, находящийся ниже (футер) будет позиционироваться не от нижнего края меню или контента, а от их верхнего.

Я почти уверен, что решение есть. Подскажите пожалуйста как это можно сделать.

UPD: сейчас порылся еще.

display:table,inline-table, inline-block как раз решают задачу, но поддерживаются не всеми браузерами. По справочнику на сайте inline-block поддерживается всеми, кроме ff1, ff2. Ладно, фиг с ним ff1, но ff2 поддерживать нужно...

Edited by happyproff
Link to comment
Share on other sites

  • 0

Ребята, тут у меня задача сложнее чем кажется... :rolleyes:

Дело в том что у меня нет как такогового жесткого макета страницы.

Я пишу специализированный визивиг редактор математических формул аля микрософт ворд экьюэейшен.

И пользователь щелкая на иконки вставялет внутрь формы редактирвоания ту или иную формулу, вот какждая из которых и будет находится в DIVе со своим ID а между ними должен быть текст.

именно поэтому стили у всех дивов должны быть заданы одни и те же, так как я не знаю в какой последовательности юзер будет вставлть формулу, а где между ними писать текст - знаки + - или просто слова!

Вот такие вот дела...

Интересная задачка?..

Link to comment
Share on other sites

  • 0
А нельзя вместо div использовать span? Тогда мороки меньше гораздо.Хотя сторонники разметки дивами меня щас закидают помидорами :rolleyes:

Второй див может сбегать на новую строку из-за того что общая ширина элементов больше ширины окна и они просто не помещаются в одну строку.

В принципе то можно. если честно мне уже не до симантики кода... :P

Лишь бы пользователь вбивал формулы правильно (см. мое сообщение в конце где я расписал постановку задачи)

Если использовать span то возникают проблемы со вложенными формулами, т.е. например когда в степень вы вставляете подформулу любую - все разъезжается непойми куда.... :P. А вот DIV-ы работают четко! все вставляется и отображается как нужно. вот только бы эти переносы на новую строку убрать любой ценой... а то формулы получаются косые..

типа такого:

2

X +

Y

Link to comment
Share on other sites

  • 0
В 10.09.2008 в 08:38, Гость comhunt сказал:

Ребята, тут у меня задача сложнее чем кажется... :rolleyes:

Дело в том что у меня нет как такогового жесткого макета страницы.

Я пишу специализированный визивиг редактор математических формул аля микрософт ворд экьюэейшен.

И пользователь щелкая на иконки вставялет внутрь формы редактирвоания ту или иную формулу, вот какждая из которых и будет находится в DIVе со своим ID а между ними должен быть текст.

именно поэтому стили у всех дивов должны быть заданы одни и те же, так как я не знаю в какой последовательности юзер будет вставлть формулу, а где между ними писать текст - знаки + - или просто слова!

Вот такие вот дела...

Интересная задачка?..

задай всем трём блокам float:left; width: примерно 30% и паддинги рассчитай

http://codepen.io/JuliJulia/pen/wWdjXR

Edited by Джулия
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy