javascript - 如何使文本响应 div 大小?

标签 javascript html css responsive

我正在构建一个电子商务网站。所有产品都显示在单独的 div 中。我有一个问题:在每个产品的 Div 中,我想显示产品描述的一部分。当产品描述比 div 长时,它只是将描述显示在 div 的边缘。我试图将问题放在图片中: enter image description here

现在,如图所示,我想解决三个问题:

  • 我想限制文本以适应 div。
  • 我想确保这不是在单词中间的某个地方完成的
  • 我想在描述预览的末尾添加一个“阅读更多”链接。

现在我在其他电子商务网站上看到了很多,但是找了几个小时后我没有找到关于如何做到这一点的明确描述。

这是生成所有产品卡片的代码:

for($i = 0; $i<$numberOfItems; $i++) {
    //echo $output_array[$i]["itemName"];
    echo '<a href="/itemDetails.php?itemCode=';echo $output_array[$i]["itemCode"]; echo '&itemName='; echo $output_array[$i]["itemName"];echo'">
    <div id="item" style="background-color: transparent; width:243px;height:auto;float:left; margin-left:20px; margin-top:20px; max-width:800px; display:inline-block;">
    <div id="itemPicture" class="itemImage"; > 
    <div id="price" class="pricetag">
    <div id="priceText" class="priceText";>';
    echo "€".$output_array[$i]["itemPrice"];

    echo '</div></div>';
    $imageSource = "http://www.imagine-app.nl/ProductImages/".$output_array[$i]["firstImage"].".jpg";
    echo '<img src="';echo $imageSource; echo'" style="max-width:100%; border:0px;"> 

    </div>

    <div id="itemName" class="itemName"">';
        echo $output_array[$i]["itemName"];
    echo '</div>'; ?>

    <div id="itemDescription" class="itemDescription" style="height:">
    <?  echo $output_array[$i]["itemDescription"];
    echo '</div>';
    ?>

    <?php
    echo '<div id="itemComment" class="itemComment"">
          Lees verder! 
    </div>

</div></a>';
}

有谁知道如何解决这些问题?任何帮助将非常感激。提前致谢!

更新

答案让我想到了“线夹”,这似乎是执行我需要的任务的 css 或 javascript 代码。实现 musically_ut 提供的 javascript 代码和 Unamata Sanatarai 的 css 将我带到这里: enter image description here

我可以说已经取得了进展,因为文本并没有越过我的 div 的边界。我只剩下 2 个问题:

  • 出于某种原因,文本限制文本贯穿在我的产品名片页脚下方
  • 它有时会打断一个词。 (这是荷兰语。应该在那里的词是“beschikt”。)

欢迎提出建议

PS:第二张截图是用 css 实现的,因为 javascript 实现只适用于一个产品(可能是因为产品卡片是由 php 'for' 循环生成的 div)

最佳答案

你想要的是多线夹紧。不幸的是,到目前为止,CSS 只允许限制文本的第一行。 Webkit/Opera 允许夹住多行,但我怀疑它在这里对你帮助不大。

此处描述了几种解决方法(甚至一种 which is all-CSS ):http://css-tricks.com/line-clampin/

然而,最可靠的似乎是使用 javascript 来完成任务:Clamp.js .

关于javascript - 如何使文本响应 div 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042335/

相关文章:

javascript - 如何使用 Facebook Login 和 ReactJS 实现登录和注销?

javascript - 将多个数组拆分为字符串,跳过空数组

html - 防止 CSS 更改文本框占位符的大小

html - 当 div 的内容不同时 Bootstrap 最大高度/宽度

javascript - 寻找从自动完成键发送用户指定值的表单示例

html - 负边距在 IE9 中不起作用

javascript - 使用 javascript 的浏览器存储

firefox - 是否有 Gecko 等同于 -webkit-mask 或 Gecko 浏览器降级的奇特方式?

javascript - 单击下一个下拉菜单打开器按钮时关闭上一个下拉菜单并保持该菜单打开

javascript - 背景图像不居中/不断重复