shr*_*iek 10 css css3 reactjs css-grid
所以,css-grids当我注意到grid-template-areas有一些不同的语法可能与内联反应样式不兼容时,我一直在玩反应.我没有使用任何库只是简单的旧内容样式与样式道具反应.
所以我打算做的就是这个.
.wrapper {
  display: grid;
  grid-template-columns: 100px 100px;
  grid-template-areas: "header header"
                       "aside main"
                       "footer footer"
}
.header {
  grid-area: header;
  border: 1px solid red;
}
.main {
  grid-area: main;
  border: 1px solid green;
} 
.aside {
  grid-area: aside
}
.footer {
  grid-area: footer;
  border: 1px solid yellow;
}
Fidde:https://jsbin.com/lejaduj/2/edit ? html,css,output
布局很简单,"标题"和"页脚"覆盖了所有列,"旁边"和"主要"覆盖了一半.这只是为了演示目的所以我保持简单.
特别注意grid-template-areas多个值是如何用双引号分隔的.
经过一番思考后,我认为我们可以gridTemplateAreas在反应内联样式中使用数组.这似乎不起作用.
我再次尝试过template-literals哪个也没用.
沙箱:https://codesandbox.io/s/zx4nokmr5l
那么,仅仅是我遇到了这个障碍还是尚未得到反应?
我宁愿不使用任何额外的库或框架来尽可能地实现这一点.
小智 7
只需使用反引号字符串即可。
gridTemplateAreas: `
                    'header header'
                    'aside main'
                    'footer footer'
                `
如果您需要样式的对象,则可以使用
    myStyle = {
        display: 'grid',
        gridTemplateAreas: "'header' 'content' 'footer'",
        gridTemplateRows: '50px calc(100vh - 100px) 50px' 
    };
并内联使用样式对象
就像我使用styletron一样
    import { styled } from 'styletron-react';
    const myStyle = {
        backgroundColor: 'whitesmoke',
        display: 'grid',
        gridTemplateAreas: "'header' 'content' 'footer'",
        gridTemplateRows: '50px calc(100vh - 100px) 50px'
    };
    const Layout = styled('div', (props) => (myStyle));
    export default Layout;
如果目标是grid-template-areas与 HTMLstyle属性(即 CSS 内联样式)一起使用,则使用单引号而不是双引号。
.wrapper {
  display: grid;
  grid-template-columns: 100px 100px;
  /* grid-template-areas: "header header"
                          "aside main"
                          "footer footer"; */
}
.header {
  grid-area: header;
  background-color: aqua;
}
.main {
  grid-area: main;
  background-color: lightgreen;
}
.aside {
  grid-area: aside;
  background-color: yellow;
}
.footer {
  grid-area: footer;
  background-color: pink;
}<body class="wrapper" style="grid-template-areas: 'header header' 'aside main' 'footer footer' ">
  <div class="header">header</div>
  <div class="main">main</div>
  <div class="aside">aside</div>
  <div class="footer">footer</div>
</body>| 归档时间: | 
 | 
| 查看次数: | 7542 次 | 
| 最近记录: |