热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使div响应另一个div-Makeadivresponsivetoanotherdiv

Ivegotthebelowdivstructure.HowdoImake.canvasElberesponsiveto.vgWrapper?我有下面的div结构。如

I've got the below div structure. How do I make .canvasEl be responsive to .vgWrapper?

我有下面的div结构。如何让.canvasEl响应.vgWrapper?

example: Assume .vgWrapper width & height is 200px, and .canvasEl width & height is 100px. NOW when the width & height of .vgWrapper is changed to 100px, .canvasEl width & height should be 50px.

示例:假设.vgWrapper宽度和高度为200px,而.canvasEl宽度和高度为100px。现在,当.vgWrapper的宽度和高度更改为100px时,.canvasEl的宽度和高度应为50px。

So the size of .canvasEl should automatically change depending on the size of .vgWrapper. Here is a Fiddle

因此.canvasEl的大小应根据.vgWrapper的大小自动更改。这是一个小提琴

// should resize propotionaltely when .vgWrapper size is chnaged

3 个解决方案

#1


I would suggest going for something like this to avoid manually setting media queries, assuming you are happy to run some Javascript or JQuery to set the height or find a better CSS solution for height etc.

我建议你去做这样的事情,以避免手动设置媒体查询,假设你很乐意运行一些Javascript或JQuery来设置高度或找到一个更好的CSS解决方案的高度等。

Width is simple and you don't need to mess with the positioning, assuming I understand your requirements correctly, please see this updated fiddle. https://jsfiddle.net/umoyhzjv/2/

宽度很简单,你不需要弄乱定位,假设我正确理解你的要求,请看这个更新的小提琴。 https://jsfiddle.net/umoyhzjv/2​​/

I have simply set the canvas wrapper to 50% width and set the height as half the parents height. You can add $(window).resize() to trigger the code to re-run if this is intended to be interactive etc.

我只需将画布包装设置为50%宽度,并将高度设置为父项高度的一半。您可以添加$(window).resize()来触发代码重新运行,如果这是为了交互等。

I set the outerWrapper to be % so it is easy to see in the fiddle, just move the page divider to make it scale.

我将outerWrapper设置为%,因此很容易在小提琴中看到,只需移动页面分隔符使其缩放。

.outerWrapper{
    left: 0;
    right: 0;
    margin: 0 auto;
    position: absolute;
    width: 50%; /*when chnaged, .canvasEl should resize accordingly*/
    height: 50%; /*when chnaged, .canvasEl should resize accordingly*/
    background-color: lime;
}
.vgWrapper{
    position: relative;
    display: inline-block;
    vertical-align: top;
    width: 100%;
    height: 100%;
}
.imgWrapper{
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}
.bgWrapper{
    display: block;
    height: 100%;
    width: 100%;
}
.imgDiv{
    margin: 0px; 
    width: 50%; 
    height: 50%; 
    overflow: hidden; 
}
.canvasEl{
    position:relative;
    width:100%;
    height: 100%;
    background-color: #f60;
}

#2


Not need Javascript to do this, css media queries is there for you. I check your code and it depends on the width .imgDiv. So when you do your queries, you must work on .imgDiv. You should change its width, if do not do this, it will be 100% of .imgDiv width. Check this fiddle

不需要Javascript来执行此操作,css媒体查询就在那里。我检查你的代码,它取决于宽度.imgDiv。因此,当您进行查询时,您必须使用.imgDiv。你应该改变它的宽度,如果不这样做,它将是.imgDiv宽度的100%。检查这个小提琴

#3


There are issues with your code that prevent the canvas size from being changed.

您的代码存在一些问题,导致无法更改画布大小。

  1. your .outerWrapper class has a fixed width and height of 200px so that will not change even if the window is resized.
  2. 你的.outerWrapper类具有200px的固定宽度和高度,因此即使调整窗口大小也不会改变。

  3. your .canvasEl class occupies 100% of the width and height of its container ie. .imgDiv, which has a width and height of 127px and 146px respectively and is no way related to .outerWrapper.
  4. 你的.canvasEl类占据其容器宽度和高度的100%即。 .imgDiv,其宽度和高度分别为127px和146px,与.outerWrapper无关。

In order to make it work I have used fluid layout ie. width and height in percentages.

为了使它工作,我使用了流体布局,即。宽度和高度百分比。

.outerWrapper{
    left: 0;
    right: 0;
    margin: 0 auto;
    position: absolute;
    width: 100%; /*when chnaged, .canvasEl should resize accordingly*/
    height: 100%; /*when chnaged, .canvasEl should resize accordingly*/
    background-color: lime;
}
.vgWrapper{
	position: relative;
  	display: inline-block;
  	vertical-align: top;
  	width: 100%;
    height: 100%;
}
.imgWrapper{
	position: absolute;
  	left: 0;
  	right: 0;
  	top: 0;
  	bottom: 0;
}
.bgWrapper{
	display: block;
	height: 100%;
    width: 100%;
}
.imgDiv{
	margin: 0px; 
	left: auto; 
	top: auto; 
	/*width: 127px;*/
	/*height: 146px;*/
	overflow: hidden; 
	position: relative;
}
.imgHolder{
	position: absolute;
}
.imgHolderInner{
	position: relative;
}
.canvasEl{
	position:relative;
    width:50%; /*computed with respect to its container*/
    height: 50%; /* computed with respect to its container*/
    background-color: #f60;
}
// should resize propotionaltely when .vgWrapper size is chnaged


推荐阅读
  • vb.net面试题,请大家帮忙,谢谢。如果需要讲详细一点,那就加我QQ531412815第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:Catchex ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • Java源代码安全审计(二):使用Fortify-sca工具进行maven项目安全审计
    本文介绍了使用Fortify-sca工具对maven项目进行安全审计的过程。作者通过对Fortify的研究和实践,记录了解决问题的学习过程。文章详细介绍了maven项目的处理流程,包括clean、build、Analyze和Report。在安装mvn后,作者遇到了一些错误,并通过Google和Stack Overflow等资源找到了解决方法。作者分享了将一段代码添加到pom.xml中的经验,并成功进行了mvn install。 ... [详细]
  • 本文整理了Java中com.evernote.android.job.JobRequest.getTransientExtras()方法的一些代码示例,展示了 ... [详细]
  • jvm内存区域与溢出为什么学习jvm木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握。当一个系统出现内存溢出,内存泄露的时候 ... [详细]
  • Isthereanywaytostylethislistusingpurecsssoallelementsabovemycursorwillbehighlight ... [详细]
  • 一篇文章搞定css3 3d效果
    css33d学习心得卡片反转魔方banner图首先我们要学习好css33d一定要有一定的立体感通过这个图片应该清楚的了解到了x轴y轴z轴是什么概念了。首先先给大家看一个小 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
author-avatar
手机用户2602936275
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有