javascript - 如何使用 CSS 调整图像和文本的响应式设计?
问题描述
我有一组可编辑和可拖动的 div,这些 div 允许您构建网页设计,也就是说,这些 div 使用这些页面设计定位和创建,然后显示给用户。问题在于获得对使用这些 div 创建的设计的响应能力。此页面在平板电脑和移动设备上的视图完全没有响应性。在这里,我展示了到目前为止的代码:
$(document).ready(function() {
$(".caja1").draggable();
$(".caja1").resizable();
});
div.container {
position: relative;
border: 1px solid black;
padding-left: 10px;
}
div.caja1 {
width: 100px;
height: 100px;
position: relative;
}
div.caja1 {
background: rgb(83, 53, 117)
}
@media (max-width: 768px) and (min-width: 320px)
{
div.caja1
{ max-width: 255px !important;
width: 255px !important;
left: 0px !important;
margin-right: 0px !important;
}
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div class="container">
<div class="row">
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
</div>
</div>
注意:创建的 div 可以移动和放置在其容器中的任何位置,这要归功于 Jquery-UI 的 draggable() 函数,它的宽度和高度可以通过 Jquery UI 的 resizable() 函数及其内容进行修改是可编辑的。我可以创建几个 div 并将它们放置在我想要的位置,然后将该 html 保存在数据库中,并将其显示在我的主网页上(使用引导程序创建)。问题是,当我看到在手机或平板电脑上创建的内容时,一切看起来都很糟糕,而且没有任何响应。此外,每个 div 都有其顶部和左侧的值,因为 div 的位置可以通过 draggable () 更改,并且它们的宽度和高度值也不是固定的,因为使用 jquery resizable 可以调整它们.
那么如何在这些类型的情况下实现响应?div 所在的容器具有相对位置,每个 div 具有相同的相对位置。这是一个示例图像,您可以在其中看到我创建的内容的桌面版本和移动版本:
在我放在上面的代码中,我有一个用于半查询的小 CSS 代码。
图片说明:在第一张图片(桌面版)中,每个文本和每个图片都在一个div内,所以那里有几个div。正好 7 个 div,标题的 div,3 个图像的 3 个 div 和每个图像下方 3 个文本的 3 个 div。
那么,您在移动版图像中看到了问题吗?
我该如何解决这个问题?
解决方案
试试这个代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<style>
div.container {
position: relative;
border: 1px solid black;
/*padding-left: 10px;*/
}
div.container .row{
display: flex;
flex-wrap: wrap;
}
div.caja1 {
width: calc( 32% - 15px);
margin: 1%;
height: 100px;
position: relative;
}
div.caja1 {
background: rgb(83, 53, 117)
}
@media (max-width: 768px) and (min-width: 320px)
{
div.container .row{
justify-content: center;
}
div.caja1
{ max-width: 255px !important;
width: 255px !important;
left: 0px !important;
margin-right: 0px !important;
}
}
</style>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.js"></script>
<script type="">
$(document).ready(function() {
$(".caja1").draggable();
$(".caja1").resizable();
});
</script>
</head>
<body>
<div class="container">
<div class="row">
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
<div class="caja1" contenteditable="true">
<div class="editable-div">
<p style="color: black;font-size: 34; font-weight: bold; font-style: initial; color: black; width: auto;" contenteditable="true">
this is text
</p>
</div>
</div>
</div>
</div>
</body>
</html>
推荐阅读
- linux - 读取输入而不指定输入长度
- c# - 使自托管 WCF 数据服务主机名感知
- java - 在 main 方法中使用 SwingUtilities.invokeLater()
- android - React Native:使不可编辑的文本框长可点击以显示自定义上下文菜单
- android - 如何在颤振的 Showcaseview 小部件中添加自定义图标(svg)?
- serilog - 环境变量在 Serilog 配置中不起作用
- linux - Ubuntu:Perl 误读带有西里尔字符的文件名
- php - PHP:在二维数组中查找一个或多个封闭区域
- laravel - 如何在 Laravel 中为许多不同的任务使用计划?
- yocto - 让yocto解压后下载更多源