如何确保CSS样式正确应用于从数组映射的项目

Chinomso Johnson:

我正在建立一个对我的个人档案有反应的项目。差不多完成了,但是我遇到了一些挑战。我将一些产品映射到一个数组中,以映射到要在屏幕上显示的项目。但是,我应用于代码的CSS样式并没有得到统一应用。

我已经将该网站上传到GitHub,可以通过https://chinomso1995.github.io/dodosPizza/进行查看该问题出现在移动视图中。在所有部分中,至少有一项不合时宜,但问题在饮料部分中非常普遍。

这是数组的JSX代码(饮料部分)

export const Drinks = [
  {id: 1, name:'Coca-Cola', details: '0.5 l', price: '300', image: cocaColaOne},
  {id: 2, name:'Coca-Cola', details: '1 l', price: '500', image: cocaColaTwo},
  {id: 3, name:'Coca-Cola Zero', details: '0.5 l', price: '300', image: cocaColaThree},
  {id: 4, name:'Fanta', details: '0.6 l', price: '300', image: fantaOne},
  {id: 5, name:'Fanta', details: '1 l', price: '500', image: fantaTwo},
  {id: 6, name:'Sprite', details: '0.6 l', price: '300', image: spriteOne},
  {id: 7, name:'Sprite', details: '1 l', price: '500', image: spriteTwo},
  {id: 8, name:'Beer Heineken', details: '0.33 l', price: '500', image: heinekenBeer},
  {id: 9, name:'Schweppes Chapman', details: '0.33 l', price: '300', image: schweppesChapman},
  {id: 10, name:'Schweppes Pineapple', details: '0.33 l', price: '300', image: schweppesPineapple},
  {id: 11, name:'Schweppes Virgin Mojito', details: '0.33 l', price: '300', image: schweppesVirginMojito},
  {id: 12, name:'Eva Still Water', details: '0.75 l', price: '200', image: evaWater},
  {id: 13, name:'Juice 5 Alive Apple', details: '0.35 l', price: '200', image: fiveAliveAppleOne},
  {id: 14, name:'Juice 5 Alive Apple', details: '0.9 l', price: '700', image: fiveAliveAppleTwo},
  {id: 15, name:'Juice 5 Alive Orange', details: '0.35 l', price: '200', image: fiveAliveOrangeOne},
  {id: 16, name:'Juice 5 Alive Orange', details: '0.9 l', price: '700', image: fiveAliveOrangeTwo},
  {id: 17, name:'Juice 5 Alive Tropic', details: '0.35 l', price: '200', image: fiveAliveTropicOne},
  {id: 18, name:'Juice 5 Alive Tropic', details: '0.9 l', price: '700', image: fiveAliveTropicTwo},
  {id: 19, name:'Americano', details: 'Espresso, hot water, 12 oz', price: '1000', image: americano},
  {id: 20, name:'Cafe Latte', details: 'Espresso, Steamed Milk, 12 oz', price: '1200', image: cafeLate},
  {id: 21, name:'Cappucino', details: 'Espresso, Steamed Milk, Foam Milk, 12 oz', price: '1200', image: cappucino}
]

这是酒类部分本身的JSX代码。

const Drinks = () => {
  const {drinkproducts} =  useContext(ProductsContext);
  const {addProduct, cartItems, increase} = useContext(CartContext);
  const isInCart = drinkproducts => {
    return !!cartItems.find(item => item.id === drinkproducts.id);
}
  return(
    <div className={styles.Drinks} id="drinks">
      <h1>Drinks</h1>
      <div className={styles.DrinksContainer}>
        {drinkproducts.map(drink=>{
          return  <div className={styles.DrinksCard}>
                    <div className={styles.ImageContainer}>
                       <img src={drink.image} alt="cocacola"/>
                    </div>
                    <div className={styles.DrinkHeader}>
                      <div>
                       <h1>{drink.name}</h1>
                       <p>{drink.details}</p>
                      </div>
                     <div className={styles.DrinkFooter}>
                      <h3>₦{drink.price}</h3>
                      {
                       isInCart(drink) && 
                       <button 
                       onClick={() => increase(drink)}>Add more</button>
                     }
                      { !isInCart(drink) &&
                        <button onClick={()=>addProduct(drink)}>
                          <span>from ₦{drink.price}</span>  
                           <span>Add to basket</span>
                        </button>}
                    </div>
                  </div>
                    
                </div>
        })}
      </div>
    </div>
  )
}

CSS代码(移动版)

@media (max-width: 500px){
  .Drinks{
    width: 90%;
   
  }
  .Drinks>h1{
    font-size: 1.4rem;
    font-family: 'Open Sans', sans-serif;
  }
  .DrinksContainer{
    display: flex;
    flex-direction: column;
  }
  .ImageContainer{
    max-width: 30%;
    max-height: 100%;
    margin-left: 0;
  }
  .DrinksContainer img{
    width: 100px;
    height: 100px;
  }

  .Drinks{
    width: 90%;
  }
  .DrinksCard{
    flex-direction: row;
    font-family: 'Open Sans', sans-serif;
    justify-content: space-around;
    align-items: center;
  }
  .DrinkHeader{
    max-width: 60%;
  }
  
  .DrinkFooter button span:first-of-type{
    display: block;
  }
  .DrinkFooter h3{
    display: none;
  }
 .DrinkFooter button span:last-of-type{
  display: none;
}
 .DrinkFooter button{
  padding: 5px;
  height: 30px;
  border-radius: 10px;
  margin-left: 0;
  width: 90px;
 }
}
使徒

通过设置max-width为60%,您仅是告诉浏览器该元素不应超过60%的空间。

如果该div的内容很小,它将填充其内容。因此,问题在于某些标题/标题足够小,并且会在如此小的屏幕中引起此问题。

通过将宽度设置为100%,您可以“强制” div占用剩余的所有空间,从而根据需要使标题全部向左对齐。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自样式标签的CSS样式未正确应用于页面

样式未正确应用于 <ul> 标签

样式未正确应用于Navbar React组件

Bootstrap 样式未正确应用于应用程序中的所有元素

CSS样式属性无法正确应用

CSS优先规则未正确应用于输入框的宽度

CSS 未正确应用于 Angular 中的自定义组件

CSS 类未正确应用于网站上的图像

我的 CSS 没有正确应用于我的 PHP 包含文件

如何将Lambda函数正确应用于熊猫数据框列

如何将lambda函数正确应用于数据框的列?

如何将自定义函数正确应用于数据框字典?

填充未正确应用于标题

宽度:100%无法正确应用于子框

如何使用JQuery将样式应用于正确的标签

CSS:如何将样式应用于特定类

如何将CSS样式仅应用于文本

如何仅将CSS样式应用于选定的行?

如何将CSS样式应用于标签?

如何避免将CSS样式应用于特定元素

如何仅将CSS样式应用于div而不应用于before伪元素

jQuery插件正确应用于悬停但不适用于隐藏元素

如何正确地将CSS样式应用于具有特定类的div中的所有图像?

如何正确地将CSS样式应用于有序列表中的H元素

角度材质样式未正确应用

Spring配置文件未正确应用于涉及@Configurable的测试

Twitter Bootstrap列定义未正确应用于Kendo DropDown

旋转矩阵没有正确应用于向量

如何在使用Angular的Ionic中单击时在样式中使用* ngFor迭代将样式应用于数组中的特定项目