#javascript #node.js #express #ejs
Вопрос:
Я пытаюсь отобразить 4 продукта в строке, но я не знаю. Как я могу это сделать?, потому что он показывает один продукт в строке. Я хочу показать подробную информацию о лекарстве под рисунком, но она показывает детали с правой стороны рисунка
Route.js
router.get('/allMedicine', (req, res)=>{
Medicine.find()
.then(medicines=>{
res.render('allMedicine',{
medicine: medicines
})
})
.catch(err=>{
console.log(err)
})
})
Ejs
<head>
<title>All Medicine</title>
<link href="/stylesheets/medicine.css" rel="stylesheet">
</head>
<body>
<table>
<tbody>
<tr>
<% for (let i =0; i<medicine.length; i ){%>
<td>
<img id="pic" src="./medicine/<%= medicine[i].medicinePic%>" alt="pic"><br>
</td>
<td> <%= medicine[i].name%></td>
<td><%= medicine[i].price%></td>
<td> <%= medicine[i].power%></td>
<td><%= medicine[i].quantity%></td>
</tr>
<%}%>
</tbody>
</table>
Ответ №1:
Я никогда не использовал Electron, однако я думаю, что смогу ответить на простой HTML, который донесет суть.
Ваш метод
Здесь у вас есть вся информация в одной строке таблицы. Таким образом, все они появляются по порядку рядом друг с другом.
<style>
table,
th,
td {
border: 1px solid black;
}
</style>
<table>
<!-- First Row -->
<tr>
<td> Image should go Here</td>
<td>
This item is below the image
</td>
<td>
This item is below the image 2
</td>
</tr>
</table>
Предложение
Здесь я разместил информацию о продукте в новой строке. Это позволит отобразить информацию ниже.
<style>
table,
th,
td {
border: 1px solid black;
}
</style>
<table>
<!-- First Row -->
<tr>
<td> Image should go Here</td>
</tr>
<!-- Second Row -->
<tr>
<td>
This item is below the image
</td>
<td>
This item is below the image 2
</td>
</tr>
</table>
Однако это оставит вас по существу с двумя строками на продукт. Я сделал это только на основе вашего текущего использования a <td>
для каждого бита информации о продукте. Вместо этого я думаю, что вы должны просто собрать всю информацию по каждому продукту, включая изображение, в одном <td>
, а затем использовать некоторые css, чтобы текст был отформатирован так, как вам хотелось бы.
<style>
table,
th,
td {
border: 1px solid black;
}
.info p {
float: left;
}
</style>
<table>
<tr>
<td>
<img src="your image" alt="Image Here" />
<div class="info">
<p>Name </p>
<p>Quantity</p>
</div>
</td>
</tr>
<tr>
<td>
<img src="your image" alt="image here" />
<div class="info">
<p>Name </p>
<p>Quantity</p>
</div>
</td>
</tr>
</table>
Комментарии:
1. у вас есть какие-нибудь идеи, как я могу показать 4 продукта подряд ?
2. Для этого можно использовать Css-стили @MuhammadUsman. Пожалуйста, ознакомьтесь с обновленным ответом, в котором текст помещается в div, а затем используется стиль для перемещения текста влево
3. но как css может поместить 4 продукта в ряд ?
4. о, я понимаю, извини. Просто вставьте каждый продукт в новый
<td>
, а не в новый ряд. Однако я действительно не рекомендую использовать таблицы для достижения этой цели. В будущем проведите некоторые исследования в FlexBox*