请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

RN样式和web样式表现不一致

在RN中

import React from "react";
import { View, StyleSheet } from "react-native";

const styles = StyleSheet.create({
    root: {
        height: '100%',
        backgroundColor: 'pink',
        marginTop: 50
    },
    subView: {
        width: '30%',
        height: 100,
        backgroundColor: 'skyblue',
        position: 'absolute',
        left:10,
        top:0

    }
})

export default () => {
    return (
        <View style={styles.root}>
            <View style={styles.subView} />
        </View>
    );
}

图片描述

在web中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    html,body {
        height: 100%;
    }
    .root {
        height: 100%;
        background-color: pink;
        margin-top: 50px;
    }

    .subView {
        width: 30%;
        height: 100px;
        background-color: skyblue;
        position: absolute;
        left: 10px;
        top:0;
    }
</style>
<body>
    <div class="root">
        <div class="subView"></div>
    </div>
</body>
</html>

图片描述

在浏览器中,绝对定位下 top: 0 是紧贴浏览器视口最上边的
在RN中,绝对定位下top: 0是贴紧父元素最上边的
很疑惑,请老师解答一下,万分感激

正在回答

1回答

web中,给root加上position:relative

0 回复 有任何疑惑可以回复我~
  • 提问者 Panda_io #1
    那老师在RN中view标签自带相对定位属性吗?我想搞清楚本质,我其实知道加relative可以解决这个问题,它是最近的非static祖先元素,就以它来定位,默认就是视口,但RN又无法像chrome一样进行样式查看,所以不明白view标签自带的属性
    回复 有任何疑惑可以回复我~ 2023-06-17 11:41:39
  • FE大公爵 回复 提问者 Panda_io #2
    你说对了,rn中自带relative
    回复 有任何疑惑可以回复我~ 2023-06-17 12:36:57
  • 提问者 Panda_io 回复 FE大公爵 #3
    好的明白了谢谢老师
    回复 有任何疑惑可以回复我~ 2023-06-17 22:48:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信