【问题标题】:Ideas with loops in php for creating css/html element [closed]在 php 中使用循环创建 css/html 元素的想法 [关闭]
【发布时间】:2012-12-30 23:15:07
【问题描述】:

我需要在网页中放置一大堆(数百个)图形元素。我想使用 html 和 css,但要使用 PHP 脚本(使用循环),这样我就不必手动操作了。 我可以创建一个这样的表(例如,以逗号分隔),我可以导入到Mysql:

Element,Width,Height,x-position,y-position,image
1,24,26 30,40,Photo1.jpg
2,46,34,50,78,Photo2.jpg

更多数据点。

我需要生成的实际代码是(例如):

#element1{
height: 26px;
width: 24px;
top: 40px;
right: 30px;
background-image: url(Photo1.jpg);
}

当然会有一堆,其中的值是从表中读取的。

我是编程新手。提前感谢您的所有建议和想法。

【问题讨论】:

  • 以下是您需要使用的函数:explode、foreach、echo、file_get_contents。你可以在php.net找到它们。如果您尝试一下并发布您遇到的代码,我可以提供帮助。
  • 老实说,我只是在学习编程,此时主要使用 Dreamweaver 提供的功能;连接到数据库、读写、表单等。为了处理这个,我会做一个“邮件合并”来在 Word/Excel 中创建文本/代码,然后直接剪切和粘贴代码。

标签: php html mysql css loops


【解决方案1】:

页面显示会很慢。直接来自 CSV 并使用内联 css 而不是每个元素的一组规则

PHP

$csv=file_get_contents('thecsvfile.csv');
$images=explode("\n", $csv);
unset($csv); // don't want this in memory any more

foreach ($images as $image) {
    $bits=explode(',', $image);
    # 0:Element, 1:Width, 2:Height, 3:x-position, 4:y-position, 5:image
    echo '<img src="'. $bits[5] .'" style="position:absolute; width:' 
        . $bits[1] .'px; height:' . $bits[2] .'px; left:'
        . $bits[3] .'px; top: ' . $bits[4] .'px;" alt="' . $bits[0] .'" />';
}

编辑为使用 img 标签

【讨论】:

  • 非常感谢。在这种情况下,没有真正的理由让图像具有 css 背景属性。直接放在div上性能会更好吗?
  • HTML 的数量几乎没有什么不同,浏览器无论如何都必须加载图像,所以没有没有区别。代码更新为使用 img 标签。
【解决方案2】:

内联样式更容易,例如: &lt;div style="height:40px;width:60px;..."&gt;&lt;/div&gt;

最好是通过 id 为每个元素创建单独的 css 规则

【讨论】:

  • 通常我不同意,内联 css 很丑,但在这种情况下,这是一个很好的选择。
猜你喜欢
  • 1970-01-01
  • 2015-02-13
  • 2019-01-20
  • 2018-03-26
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2013-12-17
  • 2020-08-22
相关资源
最近更新 更多