You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用Right组件无法完整渲染,请求技术支持

问题解决:Right组件无法显示的原因及修复方案

问题根源

.container_left 和 .container_right 都是默认块级元素(display: block),会垂直排列。.container_left 高度设为 100vh,刚好占满整个视口高度,导致 .container_right 被挤到视口下方,因此看不到它的内容和背景(开发者工具能检测到元素但页面不高亮,就是因为元素不在当前视口内)。你之前添加的伪元素能显示背景,是因为伪元素用了绝对定位脱离文档流,覆盖到了视口区域,但组件本身的内容仍在视口外。

修复方案

只需让两个组件同一行水平排列,以下是几种可行实现方式:

方法1:给App容器添加Flex布局(推荐)

修改App组件的外层容器样式,用Flex实现水平排列:

/* 可添加到全局样式或App专属样式文件中 */
.app-container {
  display: flex;
  width: 100vw;
  height: 100vh;
}

同步修改App组件的JSX:

function App() {
  return (
    <div className="app-container">
      <Left />
      <Right />
    </div>
  );
}

方法2:给两个容器设置display: inline-block

修改.container_left和.container_right的样式,添加行内块属性避免垂直排列:

/* style1.css中修改 */
.container_left {
    background-color: #ffffff;
    width: 25vw;
    height: 100vh;
    display: inline-block;
    vertical-align: top; /* 消除基线对齐的间隙 */
}

/* style2.css中修改 */
.container_right {
    background-color: #F7ECDC;
    width: 75vw;
    height: 100vh;
    display: inline-block;
    vertical-align: top;
}

注意:需确保两个容器宽度总和为100vw,且无额外margin、padding或border,否则会触发换行。

方法3:使用Grid布局

给App容器设置Grid布局,直接分配列宽:

.app-container {
  display: grid;
  grid-template-columns: 25vw 75vw;
  height: 100vh;
}

同步修改App组件的JSX为带app-container类的div即可。

额外优化点

  1. 移除重复body样式:style1.css和style2.css都定义了body样式,建议统一放到全局样式文件中,避免冲突。
  2. Left组件函数名首字母大写:React组件名必须首字母大写,当前function left()应改为function Left(),符合规范避免潜在问题。

修改后的Left组件代码:

import React from 'react';
import "./style1.css";

function Left() {
  return (
    <div className='container_left'>
        <h2 className='head'>Pocket Notes</h2>
        <button id='newGroup'> 
          <span className='plus'> + </span>
          Create Notes Group
        </button>
    </div>
  )
}

export default Left;

内容的提问来源于stack exchange,提问作者Shashank Tiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:42:39