В основном я пытаюсь сосредоточить все выровненные по левому краю тексты на основе ширины, получив ширину каждого из них, делая левое поле отрицательным на половину от ширины но сейчас он применяется только к первому абзацу.В центре слева выровненный текст с использованием javascript/jquery
Я пробовал использовать inline-block
так, чтобы ширина была точной для текста, а не унаследованной ширины родителя? Я все же хочу, чтобы элементы блока вел себя как элементы блоков.
Как это можно применить ко всему тексту при загрузке страницы?
Кроме того, я хочу, чтобы это работало для всего текста на странице (p
, li
, pre
,) есть лучший способ сделать это? Я мог бы просто перечислить все функции, которые я предполагаю.
<html>
<head>
<title>center left aligned text using javascript/jquery</title>
<style type="text/css" media="screen">
* {
margin: 0;
padding: 0;
}
#container {
margin: 200px auto;
width: 1280px;
height: 800px;
border: #000 1px solid;
}
#container p {
background: #eee;
display: inline-block;
left: 50%;
max-width: 500px;
position: relative;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$(function() {
var width = $("p").width();
$('p').css('margin-left', -width/2);
});
});
</script>
</head>
<body>
<div id="container">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet.</p>
</div>
</body>
</html>
EDIT: Если я вставить блок элемент после каждого, он ведет себя правильно
$("p").each(function() {
var width = $(this).width();
$(this).after('<br />');
$(this).css('margin-left', -width/2);
});
Это, кажется, работает отлично, вынимая 'встроенный блок '. Fiddle: http://jsfiddle.net/fEa4J/ Я что-то пропустил? – crush
в вашей скрипке, обратите внимание, что ширина абзацев не является фактической шириной текста, и это то, что я пытаюсь работать с – Ryan
О, я вижу. Не выбрал это в своем вопросе в первый раз. – crush