You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态添加食谱配料文本不换行、无项目符号问题求助

解决配料文本换行与项目符号不显示问题

我来帮你排查并解决这两个棘手的问题:

一、配料文本无法自动换行

首先看你的CSS里有两处关键语法错误,直接导致换行样式失效:

  1. .wordBreak类选择器少了开头的点号,写成了wordBreak——浏览器根本识别不到这个类的样式规则
  2. li.loopText里的margin 1px auto漏了冒号,应该是margin: 1px auto

另外,即使修复了语法,最好给li设置明确的宽度限制,避免它无限拉伸容器导致不触发换行。修改后的CSS如下:

li.loopText {
  display: list-item; /* 同时为项目符号显示做准备 */
  overflow-wrap: break-word; /* 更友好的换行逻辑,避免生硬截断单词 */
  word-break: break-word;
  padding: 2px;
  margin: 1px auto;
  width: 100%; /* 限制li宽度为容器宽度 */
  list-style-type: circle;
}

.wordBreak { /* 修正类选择器语法 */
  overflow-wrap: break-word;
  word-break: break-word;
}

同时建议给卡片容器添加宽度限制,让内部元素有明确的换行边界:

.recipeCard {
  max-width: 600px;
  width: 100%;
  margin: 1rem auto;
}

二、项目符号无法显示

这个问题的核心原因是你给li设置了display: block——列表项的项目符号只有在display: list-item时才会正常显示。另外,CSS重置表大概率把ul的padding-left清零了,导致符号被移出了可视区域。

解决步骤:

  1. 把li的display: block改成display: list-item(上面的CSS已经同步修改)
  2. 给ul添加左侧padding,让符号有足够的显示空间:
.recipeCard ul {
  padding-left: 2rem;
  margin: 0.75rem 0;
}

如果CSS重置表还重置了ul的list-style属性,可以在上面的ul样式里加上list-style-type: circle;来强制覆盖。

额外代码优化建议

为了避免返回结果不足10条时报错,以及错误提示重复添加的问题,修改你的JavaScript循环逻辑:

.done(function(response) {
  console.log(response);
  // 错误提示放在循环外,无结果直接终止后续代码
  if (response.hits.length === 0) {
    $("#recipeOutput").append("<p>" + "Please enter valid recipe ingredient or name." + "</p>");
    return;
  }
  // 取10和结果长度的最小值,避免数组越界报错
  for (var k = 0; k < Math.min(10, response.hits.length); k++){
    var foodDiv = $("<div class = 'recipeCard'>");
    var recipeName = response.hits[k].recipe.label;
    var pOne = $("<p>").html("<h2>" + recipeName + "</h2>");
    foodDiv.append(pOne);
    var recipePic = response.hits[k].recipe.image;
    var pTwo = $("<img class='recipeImage'>").attr("src", recipePic);
    foodDiv.append(pTwo);
    var recipeURL = response.hits[k].recipe.shareAs;
    var pThree =$("<p>").html("<a target='_blank' href='" + recipeURL + "'>" + "Get full recipe here" + "</a>");
    foodDiv.append(pThree);
    var length = response.hits[k].recipe.ingredients.length;
    var ingList = $("<ul>");
    for (var i = 0; i < length; i++){
      var ing = response.hits[k].recipe.ingredients[i].text;
      var pFour = $("<li class='loopText wordBreak'>").text(ing);
      ingList.append(pFour);
    };
    foodDiv.append(ingList);
    var health = response.hits[k].recipe.healthLabels;
    var pFive = $("<p>").text(health);
    foodDiv.append(pFive);
    $("#recipeOutput").append(foodDiv);
  }
});

内容的提问来源于stack exchange,提问作者Whit W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:57:46