在Next.js应用中居中按钮组件?
P粉011360903
P粉011360903 2023-09-18 22:05:21
0
1
799

我在我的nextjs页面中使用了一个按钮,它位于自己的行中。我希望按钮出现在页面的中间,因为我认为这样在PC和移动设备上都会看起来最好,但无论我尝试什么,按钮元素似乎都无法从页面最左边的原始位置移动。

手动设置margin-left和margin-right为特定的百分比,将按钮尽可能靠近页面中心,而不会将按钮的文本挤入下一行,这是我找到的唯一能使按钮移动的方法,但它看起来并不好,并且不实用。根据页面的状态,按钮内的文本可能具有不同的长度,因此硬编码的左右边距实际上并不能将按钮居中。

我尝试过'margin: auto;',text-align/align-items/justify-content: center;,甚至将按钮包装在一个div中,尝试使用css在div上居中它,而不是在按钮上。

这是我目前的代码:

return (
    <div className={cx('pd-container')}>
      <h1 className={cx('pd-title')}>{product.title}</h1>
      <img className={cx('pd-img')} src={`/productPhotos/${product.id}.jpeg`} alt={product.title} />
      <p className={cx('pd-price')}>Price: ${product.price}</p>
      {isCheckout ? (
        <CheckoutButton onCheckout={handleCheckout}/>
      ) : (
        <CartButton onAddToCart={handleAddToCart} />
      )}
    </div>
  );
.pd-container {
    align-items: center;
}
import React from 'react';
import classNames from 'classnames/bind';
import styles from './CartButton.module.css'; 

const cx = classNames.bind(styles);

const CartButton = ({ onAddToCart }) => {
    return <button onClick={onAddToCart} className={cx('cart-button')}>Add To Cart</button>;
};
  
export default CartButton;
.cart-button {
    background-color: #007bff; /* 按钮背景的蓝色 */
    color: white;
    padding: 12px 24px;
    font-size: 16px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* 添加轻微的阴影 */
    transition: background-color 0.3s ease; /* 悬停时平滑过渡 */
    text-align: center;
  }
  
  .cart-button:hover {
    background-color: #0056b3; /* 悬停时的深蓝色 */
  }

P粉011360903
P粉011360903

全部回复(1)
P粉729518806

我觉得你忘记了CSS中的display:flex属性。 你需要在pd-container类中添加display:flex; flex-direction:column; justify-content:center; align-items:center;。 你可以在https://www.w3schools.com/css/css3_flexbox.asp中了解display:flex。 没有display:flex,align-items和justify-content属性是不起作用的。 justify-content处理display-direction的主轴,align-items处理display-direction的交叉轴。 所以,如果display-direction是行,justify-content处理水平轴,align-items处理垂直轴。 希望对你有帮助。 谢谢。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板