我确信这很简单,但我正在尝试在HTML中绘制一组小的,空的内联框,如下所示:
<span style="border:1px solid black;height=10px;width=17px"></span>
早些时候,之前做过简单的.gif图片,但看起来很模糊,因为浏览器的显示器按比例放大或缩小。
<span>
但是作为内联元素并不尊重height
和width
属性。当然,使用<div style="display:inline;...
表现出相同的行为,因为它不会尊重这些属性。
你能建议一个CSS的方式吗?
<小时/> 的更新 假设如下,如果我浮动它,它会粘合到文本的右边或左边,我需要根据浏览器的宽度内联到文本,&amp; c
<p>Lorem ipsum dolor sit amet, <INSERT BOX HERE> consectetur adipisicing
elit, <INSERT OTHER BOX HERE> sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation</p>
答案 0 :(得分:12)
height
和width
只能应用于 hasLayout 属性的元素。默认情况下,SPAN元素不实现此属性。
因为内联块在所有主流浏览器上都无法正常工作,我建议使用padding-dimension技巧:
<span style="font-size:30px; padding-left:30px; background:red;"> </span>
您可能需要对尺寸进行一些调整,因为全局font-size
,font-family
和line-height
会影响您的尺寸的实际尺寸。
修改强> 绘制空框是我错过的一点,但我认为无论如何我的代码都很明显。如果没有,这是另一个例子:
<style type="text/css">
.box1 { font-size:15px; font-family:Tahoma; padding-left:15px; border:1px solid red; overflow:hidden; }
.box2 { font-size:10px; font-family:Tahoma; padding-left:15px; border:1px solid green; overflow:hidden; }
.box3 { font-size:5px; font-family:Tahoma; padding-left:5px; border:1px solid blue; overflow:hidden; }
</style>
This is red box: <span class="box1"> </span> and this is green box: <span class="box2"> </span>.
And this is another box, this time it is blue: <span class="box3"> </span>.
此代码将此作为输出: alt text http://img413.imageshack.us/img413/5865/boxes.png
因为我们将
放在每个范围内,所以这个技巧适用于所有浏览器。
答案 1 :(得分:5)
答案 2 :(得分:3)
您可以使用display: inline-block
。虽然这在IE 6等旧浏览器中不起作用。
根据您希望项目所在的位置,您可以执行display:block; float:[left or right]
答案 3 :(得分:3)
此页面上有很多好的建议。我想知道,当你尝试使用GIF时,你的图形的边界部分是什么?
如何使用可以使用CSS调整大小的透明1x1 gif,然后将border:1px solid black
应用于图像。如果你尝试将边框合并为图像的一部分,我理解拉伸它会使它看起来模糊。但是带有CSS边框的透明GIF应该看起来不错,除非你需要其他一些样式......
答案 4 :(得分:3)
其他人的答案包括正确的内联样式语法,但我想我会明确指出:
您的原始样式规则如下所示:
<span style="border:1px solid black;height=10px;width=17px"></span>
应该看起来像这样:
<span style="border:1px solid black;height:10px;width:17px"></span>
等号不属于css语法,冒号就是那里所需要的。
这与其他人建议的跨度display:inline-block
一起为我工作。像这样:
<span style="border:1px solid black;height:10px;width:17px;display:inline-block;"></span>
答案 5 :(得分:2)
你是对的, span 不尊重宽度和高度,但是,它确实是一种荣誉填充。
您可以轻松设置框的宽度,使其左右填充。
高度有点棘手,因为空跨度似乎有一个高度所以你需要将font-size设置为0。
span.box {
padding: 5px 8px; // height 10, width 16
font-size: 0px;
}
当然它在IE7(也可能是IE6)中不起作用,至少在IE7兼容模式下,当它为空时,盒子神奇地消失,当我在其中放置一个不间断的空间时,它没有显示底部边框(无论如何都会弄乱宽度)......
答案 6 :(得分:1)
我相信这有效。
<span style="display:inline-block;border:1px solid #00ff00;width:150px;height:50px;"></span>
非常确定'可以跨浏览器工作
答案 7 :(得分:1)
width: 17px
似乎不适用于内联或内联块元素。但反过来为什么不在块元素上制作技巧并让它们通过float: left
显示为内联元素?
这就是我的尝试:
<html>
<head>
<style>
.container div {
float: left;
height: 20px;
}
</style>
</head>
<body>
<div class='container'>
<div style='width: 20px; border: 1px solid red;'></div>
<div>Text</div>
<div style='width: 20px; border: 1px solid red;'></div>
</div>
<div style='clear: both'></div>
答案 8 :(得分:0)
怎么样
<div>
<div style="border: 1px solid #000; height: 10px; width: 17px; float: left"></div>
<div style="border: 1px solid #000; height: 10px; width: 17px; float: left"></div>
<br style="clear: both;" />
</div>
答案 9 :(得分:0)
不太了解你的更新,但一般来说,在HTML中绘制一组小的,空的内联框,表格是最简单的方法,因此我将把它留在这里,这有助于它。
只需定义表格......
<table>
<tr>
<td id=one></td><td id=two></td><td id=three></td>
</tr>
</table>
然后使用你的.css格式化表格数据......
tr{ height: 60px;}
th, td{ width: 100px;}
#one{ border:10px solid blue;}
#two{ border:10px solid red;}
#three{ border:10px solid green;}
根据您希望文本的位置,未格式化的表格单元格也可能是合适的。希望这会有所帮助。