我正在使用Material-用户界面-Next,并试图以一种非常特殊的方式创建图像。
------ ---------
| | | | 2 |
| | | 1 |---|
| | | | 3 |
------ ---------
我有一些相当奇怪的问题。
1-3出现在1下面
2-2和3不会填满它们的整个空间(当突出显示时,无论图像如何,只有一半的内容空间被利用)
3-有时我会得到类似以下的东西:
------ ---------
| | | | 2 |
| | | 1 |---|
| | | | 3 |
| | ---------
------
in that instance, everything on the right isn't extending all the way down
为了便于参考,如果您遵循此链接,那么您将转到物料ui下一个GridList文档。在高级网格列表下,您将看到一个大图像和许多小图像。我的目标是将其水平翻转。
我已经攻击了以下内容:
<GridList cols={4} rows={2}>
{
media.map((file, i) => (
<GridListTile style={{ display: 'flex', flexFlow: 'wrap row' }} cellHeight={200} key={i} cols={i===0 ? 3 : 1} rows={i===0 ? 2 : 1}>
<img src={file.url} />
</GridListTile>
))
}
</GridList>
上述结果导致3出现在2以下
<GridList cols={2} row={2} className={classes.gridList}>
{
<GridListTile cellHeight={200} key={1} cols={2} rows={2}>
<img src={file.url} />
</GridListTile>
}
</GridList>
</Grid>
<Grid item xs={12} md={3} style={{padding: '14px', paddingLeft: 0}}>
<Typography style={{ visibility: 'hidden' }}>a</Typography>
<GridList>
{
user && user.Media &&
<GridListTile cellHeight={200} style={{paddingBottom: 0}}>
<img src={file.url} />
</GridListTile>
}
</GridList>
<GridList>
{
user && user.Media &&
<GridListTile cellHeight={200} key={1} cols={1}>
<img src={file.url} />
</GridListTile>
}
</GridList>
这解决了问题1,但问题2和3仍然存在。
我曾尝试使用原生flex box,但每次我都会将原本应该更大的图像转换为其他图像的大小。
这是我用于flex-box的css(诚然很少)。
gridContainer: {
display: 'flex',
flexFlow: 'row',
justifyContent: 'space-around',
margin: '3rem 0'
},
下面的内容比上面的任何内容都有效。这两个小侧面图像工作正常,并且会随着屏幕的变化而改变大小。大图像不会并且将保持完全固定。
新建CSS
gridList: {
transform: 'translateZ(0)',
display: 'flex',
justifyContent: 'left',
alignItems: 'left',
overflow: 'hidden',
'& img': {
flexShrink: 1,
minWidth: '200%',
minHeight: '200%'
}
},
gridListSmall: {
transform: 'translateZ(0)',
display: 'flex',
justifyContent: 'left',
alignItems: 'left',
overflow: 'hidden',
'& img': {
flexShrink: 0,
minWidth: '100%',
minHeight: '100%'
}
},
新的超文本标记语言/JSX
<div cols={2} row={2} className={classes.gridList}>
{
<div cellHeight={200} key={1} cols={2} rows={2}>
<img src={file.url} />
</div>
}
</div>
</Grid>
<Grid item xs={12} md={3} style={{padding: '14px', paddingLeft: 0}}>
<Typography style={{ visibility: 'hidden' }}>a</Typography>
<div>
{
user && user.Media &&
<div cellHeight={200} style={{paddingBottom: 0}}>
<img src={file.url} />
</div>
}
</div>
<div>
{
user && user.Media &&
<div cellHeight={200} key={1} cols={1}>
<img src={file.url} />
</div>
}
</div>
在创建这个答案时,我使用了Valentin在问题中发布的建议和帖子上的评论。我最终放弃了GridList
,而只使用了Flexbox。
html/jsx
<Grid item xs={12} md={8} style={{paddingRight: 0}}>
<Typography type="body2">Media</Typography>
<div>
{
<div className={classes.gridListContainer}>
<div className={classes.gridList} style={{width: '70%'}}>
<img
src={media.url[0]}
alt={media[0].name}
/>
</div>
<div className={classes.gridListSmall} style={{width: '30%'}}>
<img
src={media.url[1]}
alt={media[1].name}
/>
<img
src={media.url[2]}
alt={media[2].name}
/>
</div>
</div>
}
</div>
css
gridListContainer: {
display: 'flex',
flexFlow: 'row'
},
gridList: {
transform: 'translateZ(0)',
alignItems: 'stretch',
overflow: 'hidden',
'& img': {
width: '100%',
height: '100%',
}
},
gridListSmall: {
transform: 'translateZ(0)',
// flexFlow: 'column',
justifyContent: 'left',
alignItems: 'stretch',
overflow: 'hidden',
'& img': {
flexShrink: 0,
height: '50%',
verticalAlign: 'middle'
},
'& div img': {
flexShrink: 0,
height: '50%',
verticalAlign: 'middle',
content: 'words'
}
}
---------
| | 2 |
| 1 |---|
| | 3 |
---------
保留您指向高级网格列表的示例中的源代码
看看这一行:
<GridListTile
key={tile.img}
cols={tile.featured ? 2 : 1}
rows= {tile.featured ? 2 : 1}>
所有特色图片占据2列2行。
您希望您的特色图像是1列乘2行,所以您要做的是将此列={tile.featured?2:1}
更改为此列={tile.cols | | 1}
。
您可以指定网格列表有多少列:
<GridList cols={2}>
您可以设置单元格高度:
<GridList cellHeight={160}>
您可以更改整个栅格的属性:
const styles = theme => ({
gridList: {
width: 500,
height: 450,
}
});
更灵活的方法是将行设置为<代码>行={tile.rows | | 1}。
现在,您可以控制每个图像可以占用多少列和行
const tileData = [
{
img: image,
title: 'Image' // no rows or columns means 1x1
},
{
img: image,
title: 'Image',
rows: 2 // 2 rows 1 column
},
{
img: image,
title: 'Image',
cols: 2 // 1 rows 2 columns
},
{
img: image,
title: 'Image',
rows: 2,
cols: 2 // 2 rows & 2 columns
},
我认为你的元素混合得很厉害。网格结构为:
<代码>
在您的代码中,我看到div
withol
androw
,div
withcell Height
,结构不完整(我看不到整个树)...我对此没有任何意义。
问题
暗示
您引用的组件不能保证图像的精确顺序,它们会重新排序以填充所有单元格。
问题内容: 引导轮播是否可扩展以在滑块中显示下一个和上一个图像? 目前,我的轮播看起来像这样,如何将上一张和下一张图像添加到当前活动的幻灯片中? 问题答案: Bootstrap是可能的,但是需要一些自定义… 您必须使用CSS和jQuery自定义幻灯片的位置。 另一个变化是仅显示下一张和上一张幻灯片的一部分。这可以通过在.. 的左侧和右侧上放置绝对位置叠加来完成。
下面是fiddle http://jsfiddle.net/sgtrx/中的代码(应该在早些时候完成,对不起) 好的,我的导航栏在Div包装器内,在标题下,在内容区域(主体)的顶部。 我是个新手,所以请原谅我可能犯的任何错误。 当我添加边框来分隔每个块(按钮或文本)时,它很好地分隔了按钮,然而,它在导航栏的末尾(右侧)留下了一个小空格。 包装器Div是1000px,我有5个按钮,每个200px,因
我在http://eiglaw.com上遇到了一个问题--在iPhone的屏幕右侧显示了一个大约25px宽的空白/边框。我研究了stackoverflow上的问题,这些帖子是相关的,但当我尝试提供的各种解决方案时,我都无法修复该问题: iPhone上的响应式网站-从景观到肖像旋转时不需要的空白 在iPhone Safari中呈现右白色边距的网站正文背景 缩放时页眉右侧有空白 我在iPad上也遇到过
我试图在一个div中放两个跨度,每边一个,都与div的底部对齐,而不使用绝对定位(因为这忽略了填充等,我总是在使用它后感觉不好)。右跨度中的文本比左跨度中的文本高。如果我使用垂直对齐来定位它们,如果它们都是浮动的,就不会受到影响,但是如果它们都没有浮动,它们就不会正确地水平对齐。我不能保证两个跨度中的哪一个会有更多的文本。 http://jsfiddle.net/gsvfn07f/
我有一个ApplicationInfo类型的列表和另一个String类型的ArrayList。我想在listView中列出这两者。我可以将ArrayAdapter(ApplicationInfo)和Array适配器(String)扩展到ApplicationAdapter吗。班这是我当前的代码,只显示ApplicationInfo。 ApplicationAdapter.class 所有应用程序活
问题内容: 我正在尝试在上显示图像。我正在使用渲染图像,并且图像与类文件位于同一目录中。但是,没有显示图像,并且没有发生错误。谁能帮忙弄清楚我的代码有什么问题… 问题答案: 你应该用