配置 Reactstrap 旋转木马图像以响应的最佳方式
Best way to configure Reactstrap carousel images to be responsive
我已经做了很多查找,但关于 reactstrap 轮播图像响应能力的文档出奇地少。
我的 ReactStrap 旋转木马响应式调整大小,但图像没有。
我有researched/tried的选项:
CSS 通过轮播组件本身的 className?这是我认为可能是最好的,但我还没有找到可以正确调整图像大小的背景大小、高度和最大宽度的组合。
源文件?我不确定如何实现这个或任何其他内联属性,因为轮播是一个组件
也许轮播组件本身的某个地方?
或者我有更好的修改图片的方法吗?
或者@media 是来自 css 的答案吗?
`
const items = [
{
src: 'img1.png',
altText: '',
caption: ''
},
{
src: 'img2.png',
altText: '',
caption: 'Freedom Isn\'t Free'
},
{
src: 'img3.png',
altText: '',
caption: ''
}
];
class HomeCarousel extends Component {
constructor(props) {
super(props);
this.state = { activeIndex: 0 };
this.next = this.next.bind(this);
this.previous = this.previous.bind(this);
this.goToIndex = this.goToIndex.bind(this);
this.onExiting = this.onExiting.bind(this);
this.onExited = this.onExited.bind(this);
}
onExiting() {
this.animating = true;
}
onExited() {
this.animating = false;
}
next() {
if (this.animating) return;
const nextIndex = this.state.activeIndex === items.length - 1 ? 0 : this.state.activeIndex + 1;
this.setState({ activeIndex: nextIndex });
}
previous() {
if (this.animating) return;
const nextIndex = this.state.activeIndex === 0 ? items.length - 1 : this.state.activeIndex - 1;
this.setState({ activeIndex: nextIndex });
}
goToIndex(newIndex) {
if (this.animating) return;
this.setState({ activeIndex: newIndex });
}
render() {
const { activeIndex } = this.state;
const slides = items.map((item) => {
return (
<CarouselItem
className="carouselImg"
onExiting={this.onExiting}
onExited={this.onExited}
key={item.src}
>
<img src={item.src} alt={item.altText} />
<CarouselCaption captionText={item.caption} captionHeader={item.caption} />
</CarouselItem>
);
});
return (
<Carousel
activeIndex={activeIndex}
next={this.next}
previous={this.previous}
>
<CarouselIndicators items={items} activeIndex={activeIndex} onClickHandler={this.goToIndex} />
{slides}
<CarouselControl direction="prev" directionText="Previous" onClickHandler={this.previous} />
<CarouselControl direction="next" directionText="Next" onClickHandler={this.next} />
</Carousel>
);
}
}
export default HomeCarousel;
`
.carousel-item > img {
width: 100%;
}
...将解决您的问题。
而且它与 Reactstrap 无关。这可能就是你没有找到太多的原因。仅与 TwBs 轮播有关。我个人看不出为什么该规则不是 TwBs 轮播 CSS 的一部分的任何原因,因为每个人都希望 <img>
的宽度与其父项相同 100%
。
如果您想将其限制为特定轮播,mod相应地修改选择器。
另一个经常请求的 TwBs 轮播 mod 是:
.carousel-control-prev,.carousel-control-next {
cursor:pointer;
}
美好的一天,你好,
我已经在我的 reactjs 应用程序中用 Carousel 组件尝试过这个 reactstrap。
我通过添加 bootstrap 4 类s "d-block w-100".
解决了这个问题
我在我的 reactstrap Carousel 组件和这个元素中创建了这个
来自这个:
<img src={item.src} alt={item.altText} />
我改为:
<img className="d-block w-100" src={item.src} alt={item.altText} />
我刚刚从 bootstrap 4 文档中复制了这些 类 (d-block w-100)
https://getbootstrap.com/docs/4.0/components/carousel/
这是我的示例,我将 Reactstrap Carousel 与来自我的 WordPress Rest API 数据的动态数据一起使用。
https://github.com/jun20/React-JS-and-WP-Rest-API/tree/home-carousel-final
鉴于 bootstrap 使用 flexbox,您可以通过将此添加到您的 css:
来使 reactstrap 轮播图像响应
.carousel-item, .carousel-item.active {
align-items:center;
}
这似乎可以防止图像高度被拉伸。对我有用!
基于本页的 reactstrap Carousel 示例 1 https://reactstrap.github.io/components/carousel/
以下是我如何让它在我的用例中响应:
<CarouselItem
onExiting={() => setAnimating(true)}
onExited={() => setAnimating(false)}
key={item.src}
>
<img src={item.src} alt={item.altText} style={{ width: "100%"}}/>
<CarouselCaption captionText={item.caption} captionHeader={item.caption} />
</CarouselItem>
因此,将 style={{ width: "100%"}}
传递给 img
标签,使我的超大图像完美适合屏幕,可能对来这里的其他人有用。
我已经做了很多查找,但关于 reactstrap 轮播图像响应能力的文档出奇地少。
我的 ReactStrap 旋转木马响应式调整大小,但图像没有。
我有researched/tried的选项:
CSS 通过轮播组件本身的 className?这是我认为可能是最好的,但我还没有找到可以正确调整图像大小的背景大小、高度和最大宽度的组合。
源文件?我不确定如何实现这个或任何其他内联属性,因为轮播是一个组件
也许轮播组件本身的某个地方?
或者我有更好的修改图片的方法吗?
或者@media 是来自 css 的答案吗?
`
const items = [
{
src: 'img1.png',
altText: '',
caption: ''
},
{
src: 'img2.png',
altText: '',
caption: 'Freedom Isn\'t Free'
},
{
src: 'img3.png',
altText: '',
caption: ''
}
];
class HomeCarousel extends Component {
constructor(props) {
super(props);
this.state = { activeIndex: 0 };
this.next = this.next.bind(this);
this.previous = this.previous.bind(this);
this.goToIndex = this.goToIndex.bind(this);
this.onExiting = this.onExiting.bind(this);
this.onExited = this.onExited.bind(this);
}
onExiting() {
this.animating = true;
}
onExited() {
this.animating = false;
}
next() {
if (this.animating) return;
const nextIndex = this.state.activeIndex === items.length - 1 ? 0 : this.state.activeIndex + 1;
this.setState({ activeIndex: nextIndex });
}
previous() {
if (this.animating) return;
const nextIndex = this.state.activeIndex === 0 ? items.length - 1 : this.state.activeIndex - 1;
this.setState({ activeIndex: nextIndex });
}
goToIndex(newIndex) {
if (this.animating) return;
this.setState({ activeIndex: newIndex });
}
render() {
const { activeIndex } = this.state;
const slides = items.map((item) => {
return (
<CarouselItem
className="carouselImg"
onExiting={this.onExiting}
onExited={this.onExited}
key={item.src}
>
<img src={item.src} alt={item.altText} />
<CarouselCaption captionText={item.caption} captionHeader={item.caption} />
</CarouselItem>
);
});
return (
<Carousel
activeIndex={activeIndex}
next={this.next}
previous={this.previous}
>
<CarouselIndicators items={items} activeIndex={activeIndex} onClickHandler={this.goToIndex} />
{slides}
<CarouselControl direction="prev" directionText="Previous" onClickHandler={this.previous} />
<CarouselControl direction="next" directionText="Next" onClickHandler={this.next} />
</Carousel>
);
}
}
export default HomeCarousel;
`
.carousel-item > img {
width: 100%;
}
...将解决您的问题。
而且它与 Reactstrap 无关。这可能就是你没有找到太多的原因。仅与 TwBs 轮播有关。我个人看不出为什么该规则不是 TwBs 轮播 CSS 的一部分的任何原因,因为每个人都希望 <img>
的宽度与其父项相同 100%
。
如果您想将其限制为特定轮播,mod相应地修改选择器。
另一个经常请求的 TwBs 轮播 mod 是:
.carousel-control-prev,.carousel-control-next {
cursor:pointer;
}
美好的一天,你好,
我已经在我的 reactjs 应用程序中用 Carousel 组件尝试过这个 reactstrap。 我通过添加 bootstrap 4 类s "d-block w-100".
解决了这个问题我在我的 reactstrap Carousel 组件和这个元素中创建了这个
来自这个:
<img src={item.src} alt={item.altText} />
我改为:
<img className="d-block w-100" src={item.src} alt={item.altText} />
我刚刚从 bootstrap 4 文档中复制了这些 类 (d-block w-100) https://getbootstrap.com/docs/4.0/components/carousel/
这是我的示例,我将 Reactstrap Carousel 与来自我的 WordPress Rest API 数据的动态数据一起使用。 https://github.com/jun20/React-JS-and-WP-Rest-API/tree/home-carousel-final
鉴于 bootstrap 使用 flexbox,您可以通过将此添加到您的 css:
来使 reactstrap 轮播图像响应.carousel-item, .carousel-item.active {
align-items:center;
}
这似乎可以防止图像高度被拉伸。对我有用!
基于本页的 reactstrap Carousel 示例 1 https://reactstrap.github.io/components/carousel/
以下是我如何让它在我的用例中响应:
<CarouselItem
onExiting={() => setAnimating(true)}
onExited={() => setAnimating(false)}
key={item.src}
>
<img src={item.src} alt={item.altText} style={{ width: "100%"}}/>
<CarouselCaption captionText={item.caption} captionHeader={item.caption} />
</CarouselItem>
因此,将 style={{ width: "100%"}}
传递给 img
标签,使我的超大图像完美适合屏幕,可能对来这里的其他人有用。