微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何直接设置<Image />组件的边距?

如何解决如何直接设置<Image />组件的边距?

我使用 Next.js <Image /> 组件在我的标题中加载徽标。我想将组件定位在标题中。简而言之,我需要指定它的边距。

    <div className={styles.header}>
      <Image src={logo} alt="logo" />
      <nav>navbar</nav>
      <ul>
        <li>opt1</li>
        <li>opt2</li>
        <li>opt3</li>
      </ul>
    </div>

我知道我可以简单地将 <Image /> 放在一个定位块中,但是有没有办法直接做到这一点?

解决方法

不,没有。您可以通过将 className 属性传递给 next/image 来修改许多属性。但由于边距与包装器相关,因此修改它对您没有帮助。

您要执行的操作需要在由 img 插入 next/image 标记的包装器上设置样式,这目前是不可能的(直接)。 参见this discussion以获得更好的洞察力。

但是,作为一种解决方法(针对您的特定情况),您可以在标题上设置选择包装器 div 的样式。参考:CSS Combinators

.header > div {
   margin-left: 2em;
}
,

我认为使用样式组件是一种很好的方式。

import Image from 'next/image';
import styled from 'styled-components';


const StyledImage = styled(Image)`
  /* your custom style */
  margin: 10px;
`;

and using it: <StyledImage src={image_path} />
,

正如 Image 组件上的 nextjs documentation 所说,您可以像使用常用元素一样使用 className 来设置样式。

,

您可以将类名应用于 <Image/> 组件。例如

<Image
  className="dummy-name" 
  src={src} 
  width={2400} 
  height={1598} 
  layout="responsive"/>

Documentation 列出了一些有用的属性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。