Html 如何在CSS2中仅使用一个跨距向每行添加填充(左和右)?棘手的
我找不到解决这个问题的办法 这是我想要的渲染:Html 如何在CSS2中仅使用一个跨距向每行添加填充(左和右)?棘手的,html,css,Html,Css,我找不到解决这个问题的办法 这是我想要的渲染: HTML: <!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="Conte
HTML:
<!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=utf-8" />
</head>
<body>
<div id="wrapper">
<div id="container">
<span>Lorem ipsum dolor sit amet,</span>
<span>consectetur adipisicing elit, sed</span>
<span>do eiusmod tempor incididunt.</span>
</div>
</div>
</body>
</html>
是否可以在#容器中仅使用一个
(或
,或
)进行精确渲染(每行的左右填充,每行之间的边距)
我想在每行的左侧和右侧添加填充。
因此,单词CONCENTETUR和do必须有左填充,单词amet,sed(和点)必须有右填充
如果没有,是否可以使用CSS3或jQueryHack实现这一点
谢谢大家!
抱歉,伙计们,我不够清楚。我已经编辑了我的帖子-/ 将代码添加到#container span是否解决了您的问题
display: block;
这是您在-中将代码添加到#container span是否解决了您的问题
display: block;
这是您在-中的代码,您可以将填充添加到#container
中,就完成了
#container {
width: 260px;
margin-top: 30px;
float: left;
padding: 0 20px 0 20px;
}
见:
另外,我认为,仅仅通过设置容器元素的宽度来期望某些行制动器是相当不可靠的。就我的20美分 您可以将填充添加到#容器中
,就完成了
#container {
width: 260px;
margin-top: 30px;
float: left;
padding: 0 20px 0 20px;
}
见:
另外,我认为,仅仅通过设置容器元素的宽度来期望某些行制动器是相当不可靠的。就我的20美分 Yoshi是对的。不过,你也可以用Jquery来实现。
但你要知道,这绝对不是一个优雅的解决方案
$(document).ready(function(){
$('#container').css('padding', '0px 20px 0px 20px');
});
啊,还需要从跨度上拆下衬垫。
如果你使用填充和边距,要小心,即(6)有不同的颜色 Yoshi是对的。不过,你也可以用Jquery来实现。
但你要知道,这绝对不是一个优雅的解决方案
$(document).ready(function(){
$('#container').css('padding', '0px 20px 0px 20px');
});
啊,还需要从跨度上拆下衬垫。
如果你使用填充和边距,要小心,即(6)有不同的颜色 这是您为span更新的类
#container span {
background-color: red;
padding-left: 20px;
padding-right: 20px;
display:block;
}
这是您为span更新的类
#container span {
background-color: red;
padding-left: 20px;
padding-right: 20px;
display:block;
}
我认为这不能在CSS中完成,当然不能在CSS 2中完成,也不可能在CSS 3中完成
单个范围内的单行由浏览器文本渲染引擎在应用box模型后生成-没有CSS选择器来单独选择行
实现您想要的功能的唯一(**非常**丑陋)方法是计算字符数、计算行长并在计算的行尾插入html空格和
s。我认为这不能在CSS中完成,当然不能在CSS 2中完成,也可能不能在CSS 3中完成
单个范围内的单行由浏览器文本渲染引擎在应用box模型后生成-没有CSS选择器来单独选择行
实现您想要的功能的唯一(**非常**丑陋)方法是计算字符数,计算行长度,并在计算的行尾插入html空格和
s。好吧,这是我的答案
显然,这在CSS中是不可能做到的,所以我们必须找到另一种方法来分隔每一行。
一种方法是稍微修改标记和样式表,并解析字符串,为呈现的每一行创建一个范围
丑陋的代码:
String.prototype.spanify = function(nb_char) {
var regex = '.{1,'+nb_char+'}(\\s|$)|\\S+?(\\s|$)';
return '<span>' + this.match(RegExp(regex, 'g')).join('</span><span>') + '</span>';
};
$.fn.titleize = function() {
var title = $(this).html();
var title_calculated = '<span id="title" style="visibility: hidden; position: absolute;">' + title + '</span>';
$('body').append(title_calculated);
var width = $(this).html(title).width() - 20;
var full_width = $('body').find('#title').width();
$('#title').remove();
var nb_lines = Math.floor(full_width / width);
var nb_char_per_line = Math.floor(title.length / nb_lines);
var new_title = title.spanify(nb_char_per_line);
$(this).html(new_title);
}
$('.title').titleize();
String.prototype.spanify=函数(nb_char){
var regex='.{1',+nb_char+'}(\\s |$)|\\s+?(\\s |$);
返回“”+this.match(RegExp(regex,'g')).join(“”)+;
};
$.fn.titleize=函数(){
var title=$(this.html();
var title_计算=“”+title+“”;
$('body')。追加(计算标题);
var width=$(this.html(title).width()-20;
var full_width=$('body').find('title').width();
$('#title')。删除();
var nb_线=数学地板(全宽/宽度);
var nb_char_per_line=数学楼层(title.length/nb_line);
var new_title=title.spanify(每行的字符数);
$(this.html(新标题);
}
$('.title').titleize();
好吧,这是我的答案
显然,这在CSS中是不可能做到的,所以我们必须找到另一种方法来分隔每一行。
一种方法是稍微修改标记和样式表,并解析字符串,为呈现的每一行创建一个范围
丑陋的代码:
String.prototype.spanify = function(nb_char) {
var regex = '.{1,'+nb_char+'}(\\s|$)|\\S+?(\\s|$)';
return '<span>' + this.match(RegExp(regex, 'g')).join('</span><span>') + '</span>';
};
$.fn.titleize = function() {
var title = $(this).html();
var title_calculated = '<span id="title" style="visibility: hidden; position: absolute;">' + title + '</span>';
$('body').append(title_calculated);
var width = $(this).html(title).width() - 20;
var full_width = $('body').find('#title').width();
$('#title').remove();
var nb_lines = Math.floor(full_width / width);
var nb_char_per_line = Math.floor(title.length / nb_lines);
var new_title = title.spanify(nb_char_per_line);
$(this).html(new_title);
}
$('.title').titleize();
String.prototype.spanify=函数(nb_char){
var regex='.{1',+nb_char+'}(\\s |$)|\\s+?(\\s |$);
返回“”+this.match(RegExp(regex,'g')).join(“”)+;
};
$.fn.titleize=函数(){
var title=$(this.html();
var title_计算=“”+title+“”;
$('body')。追加(计算标题);
var width=$(this.html(title).width()-20;
var full_width=$('body').find('title').width();
$('#title')。删除();
var nb_线=数学地板(全宽/宽度);
var nb_char_per_line=数学楼层(title.length/nb_line);
var new_title=title.spanify(每行的字符数);
$(this.html(新标题);
}
$('.title').titleize();
这与jQuery有什么关系?另外,请在问题中贴上你的代码。我没有正确理解这个问题。你想要左右交替填充吗?我已经用一个JSFIDLE编辑了我的问题,以显示我想要的渲染。你认为如果我将整个html+css粘贴到我的帖子中会更好吗?有四个答案似乎可以回答这个问题,但你评论说它们不是理想的解决方案。你只是指着你的小提琴作为参考,但我/我们并不清楚。你能具体说说你的愿望吗?首先:是否每一行都需要一个3像素的底边距?是的,你已经编辑过了,但在此之前,你还没有添加正确的细节,你到底想要什么。在这种情况下,我们可以理解它,但是给我们一个负号是绝对不公平的……这与jQuery有什么关系?另外,请在问题中贴上你的代码。我没有正确理解这个问题。你想左右交替填充吗?我已经用另一个JSFIDLE编辑了我的问题