鱼C论坛

 找回密码
 立即注册
查看: 553|回复: 13

[已解决]html_css魅族网页绝对定位求助

[复制链接]
发表于 2023-7-17 14:36:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
魅族商城网页中,PANDAER 奇趣探索部分,怎么实现绝对定位啊?
代码只讨论两行div,里面有8个div,每行四个div,每一个div的内容类似第一个div,其中第一个div中包含一张图片,有三行文字位于图片上
如果item加absolute后,上一个div中也加position=absolute,好像会出现第一个图片的重叠。
捕获.PNG
最佳答案
2023-7-17 14:37:10
在魅族商城网页中实现绝对定位的方法如下:

首先,确保容器元素(包含要进行绝对定位的子元素)的position属性设置为relative,这样它将成为绝对定位元素的相对定位参考点。

然后,对于每个要进行绝对定位的子元素,可以为它们分别添加position: absolute; 定义其位置。需要注意的是,如果每个子元素都占据整个父容器的区域,会导致重叠问题。

为了避免重叠问题,你可以使用top、left、right、bottom等属性来调整每个子元素相对于父容器的位置。例如,在一个一行四个的布局中,假设每个子元素的宽度为25%,你可以使用left属性来控制每个子元素的水平位置。

以下是一个示例代码,演示如何实现绝对定位布局:
  1. <style>
  2.   .container {
  3.     position: relative;
  4.   }
  5.   .item {
  6.     position: absolute;
  7.     width: 25%;
  8.     height: auto; /* 根据内容自适应高度 */
  9.   }
  10.   .item:nth-child(1) {
  11.     top: 0;
  12.     left: 0;
  13.   }
  14.   .item:nth-child(2) {
  15.     top: 0;
  16.     left: 25%;
  17.   }
  18.   /* 继续定义其他子元素的位置 */
  19. </style>
  20. <div class="container">
  21.   <div class="item">
  22.     <!-- 第一个 div 的内容,包含一张图片和三行文字 -->
  23.   </div>
  24.   <div class="item">
  25.     <!-- 第二个 div 的内容 -->
  26.   </div>
  27.   <!-- 继续添加其他子元素 -->
  28. </div>
复制代码

通过设置每个子元素的top、left属性,你可以控制它们在容器中的位置。根据你的具体需求和布局,你需要调整各个子元素的位置和样式。

注意:如果在开发过程中遇到问题,建议仔细检查样式和嵌套关系,确保每个元素按照预期位置进行绝对定位。

希望这能帮到你!如果还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2023-7-17 14:37:08 | 显示全部楼层

回帖奖励 +10 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:37:09 | 显示全部楼层

回帖奖励 +10 鱼币

要在魅族商城网页的"PANDAER 奇趣探索"部分实现绝对定位,您可以按照以下步骤进行操作:

1. 首先,在HTML中找到需要实现绝对定位的父容器div,给它添加`position: relative;`的样式。这将创建一个相对定位的容器,作为绝对定位元素的参考点。

2. 在每个子div上添加`position: absolute;`的样式,以实现绝对定位。确保这些子div是在父容器内部。

3. 使用`top`、`bottom`、`left`和`right`属性来调整子div的位置。根据您的需求,您可以根据像素值或百分比值来调整它们的位置。

4. 如果发现第一个图片重叠的问题,可以尝试给第一个图片所在的div添加`z-index`属性,通过设置较大的值来提高其层级,确保它在其他元素上方。例如:`z-index: 999;`。

下面是一个示例代码片段,展示了如何在两行div中实现绝对定位:

```html
<!DOCTYPE html>
<html>
<head>
  <style>
    .parent {
      position: relative;
    }

    .child {
      position: absolute;
      top: 0;
      left: 0;
      /* 其他样式属性 */
    }

    /* 第一个图片所在的div */
    .first-child {
      z-index: 999;
    }
  </style>
</head>
<body>
  <div class="parent">
    <div class="child first-child">
      <img src="image.jpg" alt="图片">
      <p>第一行文字</p>
      <p>第二行文字</p>
      <p>第三行文字</p>
    </div>
    <!-- 其他子div -->
  </div>
</body>
</html>
```

请根据您的实际情况进行调整,根据需要可能需要添加更多的CSS属性和样式来实现您想要的效果。
求给个最佳答案呗

此回答源于ChatGPT,若有不正确之处,请多包容

点评

两个号用gpt过分了  发表于 2023-7-17 14:37

评分

参与人数 1荣誉 -5 鱼币 -5 收起 理由
陶远航 -5 -5 昨天说不用今天反手拿过来,别太过分

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:37:10 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +10 鱼币

在魅族商城网页中实现绝对定位的方法如下:

首先,确保容器元素(包含要进行绝对定位的子元素)的position属性设置为relative,这样它将成为绝对定位元素的相对定位参考点。

然后,对于每个要进行绝对定位的子元素,可以为它们分别添加position: absolute; 定义其位置。需要注意的是,如果每个子元素都占据整个父容器的区域,会导致重叠问题。

为了避免重叠问题,你可以使用top、left、right、bottom等属性来调整每个子元素相对于父容器的位置。例如,在一个一行四个的布局中,假设每个子元素的宽度为25%,你可以使用left属性来控制每个子元素的水平位置。

以下是一个示例代码,演示如何实现绝对定位布局:
  1. <style>
  2.   .container {
  3.     position: relative;
  4.   }
  5.   .item {
  6.     position: absolute;
  7.     width: 25%;
  8.     height: auto; /* 根据内容自适应高度 */
  9.   }
  10.   .item:nth-child(1) {
  11.     top: 0;
  12.     left: 0;
  13.   }
  14.   .item:nth-child(2) {
  15.     top: 0;
  16.     left: 25%;
  17.   }
  18.   /* 继续定义其他子元素的位置 */
  19. </style>
  20. <div class="container">
  21.   <div class="item">
  22.     <!-- 第一个 div 的内容,包含一张图片和三行文字 -->
  23.   </div>
  24.   <div class="item">
  25.     <!-- 第二个 div 的内容 -->
  26.   </div>
  27.   <!-- 继续添加其他子元素 -->
  28. </div>
复制代码

通过设置每个子元素的top、left属性,你可以控制它们在容器中的位置。根据你的具体需求和布局,你需要调整各个子元素的位置和样式。

注意:如果在开发过程中遇到问题,建议仔细检查样式和嵌套关系,确保每个元素按照预期位置进行绝对定位。

希望这能帮到你!如果还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:47:24 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-17 14:54:12 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-17 15:09:45 | 显示全部楼层
绝对定位参考小甲鱼老师Web教程P59:



解决方式:

外层PANDAER类使用相对定位:

  1. .PANDAER {
  2.   position: relative;
  3. }
复制代码

内层item使用绝对定位:

  1. .item {
  2.   position: absolute;
  3.   left: 0;
  4.   top: 0;
  5.   width: 25%; /* 4列,所以每列宽度设为25% */
  6. }
复制代码

使用nth-child选择器计算每一个item的left和top值:

  1. .item:nth-child(1) {
  2.   left: 0;
  3.   top: 0;
  4. }

  5. .item:nth-child(2) {
  6.   left: 25%;
  7.   top: 0;
  8. }

  9. .item:nth-child(3) {
  10.   left: 50%;
  11.   top: 0;
  12. }

  13. .item:nth-child(4) {
  14.   left: 75%;
  15.   top: 0;
  16. }

  17. // 依此类推设置每一项的定位值
复制代码

给item之间添加间距避免内容重叠:


  1. .item {
  2.   margin-right: 10px;
  3.   margin-bottom: 10px;
  4. }
复制代码


这就可以实现基于绝对定位的多行多列布局。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 15:17:07 | 显示全部楼层
陶远航 发表于 2023-7-17 14:37
在魅族商城网页中实现绝对定位的方法如下:

首先,确保容器元素(包含要进行绝对定位的子元素)的position ...

布局已实现,怎么让文字显示在图片img上,格式如魅族商城pandear奇趣探索商品部分的第一个商品
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 15:23:43 | 显示全部楼层
不二如是 发表于 2023-7-17 15:09
绝对定位参考小甲鱼老师Web教程P59:

布局已实现,怎么让文字显示在图片img上,格式如魅族商城pandear奇趣探索商品部分的第一个商品
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 15:26:42 | 显示全部楼层
都是什么鬼啊?定位分为相对定位和绝对定位,使用了absolute那么就针对其父类,其父类要设置relative。至于如何显示,那便是层级的问题,试着z-index来改变层级,从而显示图片。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 15:36:24 | 显示全部楼层
就是原来用div,然后float等于left浮动,然后有两行div
目的是把文字放在图片上,不太懂绝对定位,把relative用到了小div的上一层上了,造成8个div重叠,大概是这个意思。
然后刚才又用绝对定位重新布局了8个div,对绝对定位了解了。
捕获2.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 15:47:36 | 显示全部楼层
图片和文字还是绝对定位,理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 15:54:05 | 显示全部楼层
其中wrap类是为了设置宽度为1240px以及margin 0 auto居中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 05:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表