css: перекрывающиеся заголовки h1 в плавающих блоках

У меня есть div, включающий три внутренних div, которые все плавают влево. Эти поплавки должны представлять три столбца. Пока все в порядке.

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

Изображение покажет это лучше, чем 1000 слов:

введите здесь описание изображения

(Извините за внешнюю ссылку. Но из-за того, что я здесь впервые, у меня недостаточно очков репутации для публикации изображений :))

Мой html-код выглядит так:

     <div id="content_container" class="appearance">
       <div class="column">
         <h1>My headline1111111111111</h1>
         text
       </div>
       <div class="column">
         <h1>My headline2222222222</h1>
           text
       </div>
       <div class="column">
         <h1>My headline333333333333333333333</h1>
         text
       </div>            
       <div style="clear: left;"></div>
    </div>

И вот мой код css:

#content_container {
  position: relative;
}

.column {
  float: left;
  width: 33.33333%;
  padding-right: 10px;
}

.appearance {
  margin: 0 auto;
  width: 60%;  
}

С другой стороны, content_container также является внутренним div другого контейнера-оболочки. Не знаю, имеет ли это значение в данном случае.

Любые идеи, что я мог бы сделать, чтобы исправить это?


person n2k    schedule 15.05.2014    source источник


Ответы (2)


Я думаю, что word-break, с помощью которого вы можете указать, хотите ли вы разорвать строку внутри слова, добьется цели:

.column { word-break:break-all; }

демонстрация jsFiddle

Подробнее о свойстве word-break можно прочитать здесь.

person display-name-is-missing    schedule 15.05.2014
comment
Здравствуйте, Даниил, спасибо. Но это сократит слово. Это не решение для меня. Можно ли с помощью этого метода обернуть только целые слова? - person n2k; 16.05.2014
comment
@user3642823 user3642823 да, есть white-space:pre-line, который делает это, но поскольку слово может быть настолько длинным, что оно не помещается и в следующей строке, вам следует использовать решение @ScoreNinja, если вы не хотите сокращать слова. Его/ее решение создает полосу прокрутки, поэтому все слова сохраняются как есть. - person display-name-is-missing; 16.05.2014
comment
Нельзя ли заголовки обернуть как обычные тексты вообще? Это неудовлетворительное решение для меня, сделать его прокручиваемым или скрыть:/ - person n2k; 16.05.2014
comment
@nki ты имеешь в виду с дефисами? Нравится Какой-то тээээ- [NEW LINE] ээээкст. - person display-name-is-missing; 16.05.2014
comment
@nki Надеюсь, ты понимаешь, что должен что-то сделать. Либо: 1) спрятаться; 2) сделать полосу прокрутки; 3) разрыв слов. - person display-name-is-missing; 16.05.2014
comment
Мне не нужны дефисы. Я имею в виду что-то вроде этого: OneWord [Новая строка] OneWordWhichIsToLarge. Спасибо :) - person n2k; 16.05.2014
comment
@nki хорошо, так что если OneWordWhichIsToLarge. шире контейнера, что должно произойти? - person display-name-is-missing; 16.05.2014
comment
это хороший вопрос :) Я не думаю об этом. Так что в этом случае я думаю, что дефисы были бы хороши :) - person n2k; 16.05.2014
comment
@nki чистое решение css с дефисами имеет очень низкую кросс-браузерную способность. Уверены, что хотите именно этого, а не просто ломать слова? - person display-name-is-missing; 16.05.2014
comment
Думаю для этого случая нужно сделать мобильную версию. Я уже читал о медиа-запросах. Это момент, о котором мне нужно подумать в целом. Но в немобильном случае: есть ли возможность обернуть только целые слова, предполагая, что слова не больше, чем сам контейнер? - person n2k; 16.05.2014
comment
переносить только целые слова? Мой текущий код делает это. Измените на keep-all, если вы хотите запретить разрыв между парой символов. - person display-name-is-missing; 16.05.2014
comment
@nki на каком языке будет ваш сайт? Если вы хотите использовать дефисы, вам придется принять это во внимание. Подробнее об этом можно прочитать здесь: developer.mozilla.org/ en-US/docs/Web/CSS/ - person display-name-is-missing; 16.05.2014
comment
Извините, я неправильно вас понял :) Используя break-all, я получил следующее: например: Longword development --› Longword develo [NEWLINE] pment. Изменение его на keep-all решит эту проблему :) С этим флагом я должен получить следующий вывод: Longwordword [NEWLINE] development. Спасибо. Извините, я немного устал. Поздно ночью :) - person n2k; 16.05.2014
comment
@nki Хорошо, я тебя понял! Рад, что исправили :) - person display-name-is-missing; 16.05.2014

Ты можешь использовать

.column { overflow: hidden; }

обрезать заголовок или

.column { overflow-x: scroll; }

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

person ScorNinja    schedule 15.05.2014