css - 使用示例作为指南渲染布局

标签 css reactjs

我有这个呈现菜单的组件:

import React, { Component } from 'react'
import { BrowserRouter as Router, Route, NavLink } from 'react-router-dom'

import Intro from './Intro'
import Houses from './Houses'
import PortfolioPage from './PortfolioPage'
import Cronology from './Cronology'

var data = require('./db.json');

class PortfolioMenu extends Component {
  constructor(props) {
    super(props)
    this.state = {
      portfolioClass: "",
      interiors: [],
      furnitures: [],
      studies: [],
      houses: []
    }
  }

  componentDidMount() {
    this.setState({
      interiors: data.interiors[0],
      furnitures: data.furnitures[0],
      studies: data.studies[0],
      houses: data.houses
    })
  }        
  render() {      
    return (
      <div>
        <Router>
          <div class="wrapper2">
            <div class="wrapper-portfolio">
              <Route exact path='/portfolio' render={() => <Intro />} />
              <Route exact path='/portfolio/casas' render={() => <Houses data={this.state.houses}/>} />
              <Route exact path='/portfolio/interiores' render={() => <PortfolioPage data={this.state.interiors}/>} />
              <Route exact path='/portfolio/moveis' render={() => <PortfolioPage data={this.state.furnitures}/>} />
              <Route exact path='/portfolio/estudos' render={() => <PortfolioPage data={this.state.studies}/>} />
              <Route exact path='/portfolio/cronologia' render={() => <Cronology />} />
            </div>
            <nav>
              <ul className={`portfolio-menu ${portfolioClass}`}>
                <li><NavLink activeClassName="active" isActive={this.isActive} exact to="/portfolio">• introdução</NavLink></li>
                <li><NavLink activeClassName="active" exact to="/portfolio/casas">• casas</NavLink></li>
                <li><NavLink activeClassName="active" exact to="/portfolio/interiores">• interiores</NavLink></li>
                <li><NavLink activeClassName="active" exact to="/portfolio/moveis">• móveis</NavLink></li>
                <li><NavLink activeClassName="active" exact to="/portfolio/estudos">• estudos</NavLink></li>
                <li><NavLink activeClassName="active" exact to="/portfolio/cronologia">• cronologia</NavLink></li>
              </ul>
            </nav>           
          </div>
        </Router>
      </div>
    )
  }
}


export default PortfolioMenu

我想做 <li>表现得像下面这个例子:

enter image description here

我该如何解决?我想以此示例中显示的这种确切方式进行渲染。执行 li 的元素分布。我想在第一行制作四个 block ,在第二行制作两个。

最佳答案

如果你必须使用纯 CSS(正如你在上面的评论中提到的),你会想要使用 CSS grids .

如果您愿意使用第三方 JavaScript 库,我建议您查看 Material-UI .特别是他们的 Grid组件。

你的问题让你看起来像是前端开发的新手,所以我推荐第二种方法。 Material-UI 包括许多常用的组件,这些组件在多个浏览器中都经过了良好的测试。这是创建漂亮的布局和设计的好方法,不会让人头疼。

关于css - 使用示例作为指南渲染布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54868254/

相关文章:

java - 如何使用 JSF 2 h :outputStylesheet? 实现 "CSS versioning"(以解决缓存问题)

javascript - 如何在react渲染中显示而不重新渲染,自动更改mobx存储实例的值?

html - 图像在另一个图像上的对齐 css angularjs

javascript - 事件未在使用 Reactjs 新创建的窗口上触发

twitter-bootstrap - 我应该将静态文件放在我的 React.JS 应用程序的什么位置?

reactjs - Redux 表单 - 将当前输入值作为字符串返回 onChange

reactjs - react 分析器 : What do the timings mean?

html - 纯CSS复选框图片替换多对

javascript - 如何根据 url 的结果更改我的 angular 7 网站上的 css 元素?

仅用于将 + 符号附加到 span 类的第一个实例的 jQuery 选择器