如何在反应中设置边栏和内容高度?

乌里亚RV

我用reactJs制作了一个简单的网页。它仍然没有功能,但是在我想要设计和架构它之前。我在设计时遇到问题。当前它看起来像这样https://ibb.co/4TCRwTY,但是当我向下滚动时,它看起来像这样https://ibb.co/kJC3p9q我如何使其并排显示侧边栏和内容行,它们也不会t重叠页眉/页脚。另外,当向下滚动时,我希望边栏一直滚动到其内容的内容。我知道颜色看起来很荒谬,但是它们可以在视觉上区分组件。对于这个简单的网页,常规HTML / CSS(例如flexbox)是否是更好的选择,还是我应该考虑使用纯reactjs组件?任何帮助将不胜感激。谢谢

App.css

html, body {
    width: 100%;
    height: 100%;
    background: orange;
}
.sidenav { 
    float:left; 
    width:20%; 
    height: 100vh;
    background:darkslategray; 
    overflow-x: hidden; 
    padding-top: 60px;  
}
.sidenav p {
  padding-left: 45px;
  text-decoration: none;
  font-size: 20px;
  color: white;
}
.sidenav p:hover {
  color: blue;
}

.contents {
  height: 100vh;
  /* float:left; */
  padding: 60px 10px 60px 30px;
  background: gray; 
  align-items:center;
}

img {
    width: 800px;
    height: 1000px;
    margin-left: 80px;
  } 
header {
    position:fixed;
    width:100%;
    top:0px;
    background:darkslateblue;
    text-align: end;
    padding: 10px 20px 10px 0px;
    /* margin-bottom: 0!important; */
  }

footer {
    position: fixed;
    width: 100%;
    bottom: 0;
    background: darkslateblue;
    text-align: end;
    padding: 10px 20px 10px 0px;
}

h3 {
  text-align: center; 
  font-size: 1.4em; 
  margin: 0px auto; 
  padding: 0px 0px 5px 0px; 
}

App.js

class App extends Component {
  constructor() {
    super();
  }
  render() {
    return (
      <>
        <Header/>
        <Sidebar/>
        <Footer/>
      </>
    );
  }
}
export default App;

Sidebar.jsx

const Sidebar = () => {
    return (
    <Router>
        <div className="sidenav">
            <Link to="/"><p>First Blog</p></Link>
            <Link to="/"><p>First Blog</p></Link>
            <Link to="/"><p>First Blog</p></Link>
            <Link to="/"><p>First Blog</p></Link>
            <Link to="/"><p>First Blog</p></Link>
            <Link to="/"><p>First Blog</p></Link>
        </div> 
        <div className="contents">
        <Switch>
            <Route exact path="/">
                <BlogContents/>
            </Route>
        </Switch>
        </div>
    </Router>
    );
  }

BlogContent.jsx

function BlogContents() {
    return (
        <>
            <h3>My Recent Trip</h3>
            <p>blablaa
                janjnkjadn
                nacndcjds
                j cjdcscsdc
                rfcscndcvnsj
                amns am dasd
                s cweurbfskjdncsknjc!jknckjnvkerjnvejvnernvernvfjnv,
                fv mc mdf cdf fd nd csdc dewd wedwedwedew aknxjanc
            </p>
            <img src="https://images.unsplash.com/photo-1560214482-85e7339701c5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=902&q=80"/>
        </>
    );
  }

Footer.jsx

function Footer() {
    return (
    <footer>
        This is Footer
    </footer>
    );
  }

Header.jsx

function Header() {
    return (
        <header> Home | Contact </header>
    );
  }
布莱斯

Flexbox将非常适合您的网站,我认为多数情况下如此。100vh如果可能,我也尽量避免使用您的身高。这会将高度设置为加载时屏幕的视图高度,而不是整个页面的高度(如果可以滚动到屏幕高度之外)。

如果您希望侧边栏占据页面的整个高度,则可以将其设置为window.outerHeight下面的例子:

const Sidebar = () => {
// Variable to get window view height
const viewHeight = window.outerHeight;
return (
<Router>
    // added the style to the div, the .sidenav style will still work from your app.css sheet as well
    <div style={{ height: viewHeight }} className="sidenav">
        <Link to="/"><p>First Blog</p></Link>
        <Link to="/"><p>First Blog</p></Link>
        <Link to="/"><p>First Blog</p></Link>
        <Link to="/"><p>First Blog</p></Link>
        <Link to="/"><p>First Blog</p></Link>
        <Link to="/"><p>First Blog</p></Link>
    </div> 
    <div className="contents">
    <Switch>
        <Route exact path="/">
            <BlogContents/>
        </Route>
    </Switch>
    </div>
</Router>
)};

对于您的img,您会希望将其宽度设置为%,以便针对不同的屏幕尺寸进行调整。您只需要提供img一个宽度,高度将根据图像的纵横比自动创建。我还将设置一个max-width来控制图像,以使其不接管大屏幕上的屏幕。为您尝试以下代码img

img {
  width: 50%;
  max-width: 400px;
  margin-left: 80px;
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何设置边栏高度以匹配主要内容的高度?

来自分类Dev

如何在AngularJS中基于边栏更新内容

来自分类常见问题

为边栏和主要内容创建高度的麻烦

来自分类Dev

为边栏和主要内容创建高度的麻烦

来自分类Dev

如何使材质ui边栏打开以反应的主要内容?

来自分类Dev

如何在反应中获得正确的画布宽度和高度?

来自分类Dev

如何在SnapKit中按比例设置边距与Superview高度的大小

来自分类Dev

KitKat中的半透明系统栏和内容边距

来自分类Dev

如何在标签栏 Xamarin 表单 IOS 中设置边距?

来自分类Dev

如何在iOS 8中设置UIAlertController的高度和宽度

来自分类Dev

如何在SwiftUI中设置图像的宽度和高度?

来自分类Dev

如何在OpenCV Python中设置框架的高度和宽度

来自分类Dev

如何在Libgdx中设置屏幕的宽度和高度?

来自分类Dev

如何在js中设置图像对象的高度和宽度

来自分类Dev

如何在图像C#中设置宽度和高度

来自分类Dev

如何在html中设置高度和背景图像

来自分类Dev

如何在 HTML/CSS 中为页面上的所有内容设置边框/边距?

来自分类Dev

如何在每个控制角设置交叉并在Android中设置边距和填充

来自分类Dev

如何在智能过滤器栏中设置输入框高度?

来自分类Dev

如何在Angular中没有jQuery的情况下基于其他元素的高度设置页脚的边距?

来自分类Dev

引导边栏和内容宽度

来自分类Dev

如何在侧边栏div上设置100%的高度?

来自分类Dev

如何在Eclipse的边栏中查看对象的方法

来自分类Dev

如何在Eclipse的边栏中查看对象的方法

来自分类Dev

如何在边栏中添加“已删除邮件”?

来自分类Dev

设置侧边栏高度与滚动内容相等

来自分类Dev

如何在javafx中创建跨整个高度的textarea和侧边栏?

来自分类Dev

如何在addHTML中设置顶部和底部边距

来自分类Dev

如何在iTextSharp中设置PdfPTable的高度

Related 相关文章

  1. 1

    如何设置边栏高度以匹配主要内容的高度?

  2. 2

    如何在AngularJS中基于边栏更新内容

  3. 3

    为边栏和主要内容创建高度的麻烦

  4. 4

    为边栏和主要内容创建高度的麻烦

  5. 5

    如何使材质ui边栏打开以反应的主要内容?

  6. 6

    如何在反应中获得正确的画布宽度和高度?

  7. 7

    如何在SnapKit中按比例设置边距与Superview高度的大小

  8. 8

    KitKat中的半透明系统栏和内容边距

  9. 9

    如何在标签栏 Xamarin 表单 IOS 中设置边距?

  10. 10

    如何在iOS 8中设置UIAlertController的高度和宽度

  11. 11

    如何在SwiftUI中设置图像的宽度和高度?

  12. 12

    如何在OpenCV Python中设置框架的高度和宽度

  13. 13

    如何在Libgdx中设置屏幕的宽度和高度?

  14. 14

    如何在js中设置图像对象的高度和宽度

  15. 15

    如何在图像C#中设置宽度和高度

  16. 16

    如何在html中设置高度和背景图像

  17. 17

    如何在 HTML/CSS 中为页面上的所有内容设置边框/边距?

  18. 18

    如何在每个控制角设置交叉并在Android中设置边距和填充

  19. 19

    如何在智能过滤器栏中设置输入框高度?

  20. 20

    如何在Angular中没有jQuery的情况下基于其他元素的高度设置页脚的边距?

  21. 21

    引导边栏和内容宽度

  22. 22

    如何在侧边栏div上设置100%的高度?

  23. 23

    如何在Eclipse的边栏中查看对象的方法

  24. 24

    如何在Eclipse的边栏中查看对象的方法

  25. 25

    如何在边栏中添加“已删除邮件”?

  26. 26

    设置侧边栏高度与滚动内容相等

  27. 27

    如何在javafx中创建跨整个高度的textarea和侧边栏?

  28. 28

    如何在addHTML中设置顶部和底部边距

  29. 29

    如何在iTextSharp中设置PdfPTable的高度

热门标签

归档