我有一些JSON数据,它们渲染得非常好。
目前,我从我的对象获取超级名称,价格,图片(见截图)。
然而,我需要设计这个样式,使每件连衣裙看起来像这样但水平(屏幕截图)
现在我设法使用JS中的样式标签来设置图像样式以使其成为300px,但是,我对如何设计其余元素的方式一无所知?我使用普通的样式表吗?
这是我的HTML - 正如您所看到的,我只有一个带有id jsonData的div,它包含了所有数据。
npi.group_by(keys).split(values)
这是我的JS
<body>
<h1>IF YOU LIKE THIS, YOU MIGHT INTERESTED IN THESE</h1>
<div id="jsonData"></div>
<script src="app.js"></script>
<div id="jsonData">
</div>
</body>
很抱歉,如果这很简单,那我就是渲染JSON的新手。
答案 0 :(得分:2)
以类似的方式调整您的代码
var divId = document.getElementById('jsonData');
for(var i=0;i<obj.placements.length;i++) {
divId.innerHTML += '<div class="block"><span class="name">' + obj.placements[i]['name'];
divId.innerHTML += '</span>';
divId.innerHTML += '<span class="price">' + obj.placements[i]['price'];
divId.innerHTML += '</span>';
divId.innerHTML += '<img class="image" src="' + obj.placements[i]['imageURL'] + '" style="max-width: 300px" /></div>';
}
之后,您将以这样的格式获得输出
<div class="block">
<span class="name">OutputName</span>
<span class="price">OutputPrice</span>
<img class="image" src="OutputImage">
</div>
稍后通过应用css / less / sass可以轻松地进行视觉调整。
这里是关于如何对齐左侧宽度为300px的方框的示例;
.block {
widht: 300px;
float: left;
padding: 5px;
border: 1px solid red;
.price {
font-weight: bold;
width: 100%;
}
}
答案 1 :(得分:0)
我可以推荐以下步骤:
答案 2 :(得分:0)
class
标记中添加特定的img
属性,或者根据需要更方便地将img
标记包含在div
内,并将类应用于这些divs
。然后你可以用任何你想要的方式使用CSS。示例:强>
var divId = document.getElementById('jsonData');
for(var i=0;i<obj.placements.length;i++) {
divId.innerHTML += '' + obj.placements[i]['name'];
divId.innerHTML += '<br>';
divId.innerHTML += '' + obj.placements[i]['price'];
divId.innerHTML += '<br>';
divId.innerHTML += '<img src="' + obj.placements[i]['imageURL'] + '" class='myImage'" /><br />';
}
然后在单独的文件中添加CSS:
.myImage {
width: 300px;
}
//and for selecting any specific element use
div:nth-child(2) {
background: red;
color: black;
}
注意:将设计与逻辑和标记分开也是最佳做法。这些天你可以在CSS中实现任何风格。