CSS将一个div移动到另一个div

kgqe7b3p  于 2023-11-19  发布在  其他
关注(0)|答案(8)|浏览(236)

我有代码(desktop):

  1. <div class="firstDiv">
  2. <div class="firstDivInside">...</div>
  3. </div>
  4. <div class="secondDiv">
  5. <div class="secondDivInside">...</div>
  6. </div>

字符串
是否可以通过只使用css将secondDivInside移动到firstDiv

  1. @media screen and (max-width: 767px) {
  2. }


我需要(在电话上):

  1. <div class="firstDiv">
  2. <div class="firstDivInside">...</div>
  3. <div class="secondDivInside">...</div>
  4. </div>
  5. <div class="secondDiv">
  6. </div>

neekobn8

neekobn81#

真的这不是一个大问题。这个块是真的独立和移动它是我们通常在Magento 2是可能的。
步骤1
对于布局catalog_category_view. xml,请执行以下操作

  1. <move element="catalog.navigation.state" as="navigation_state" destination="product_list_toolbar" before="category.description"/>

字符串
Step 2.对于模板Magento_LayeredNavigation::layer/view.phtml
寻找这样的代码

  1. <?= $block->getChildHtml('state') ?>
  2. <?php if ($block->getLayer()->getState()->getFilters()): ?>
  3. <div class="block-actions filter-actions">
  4. <a id="product-filter-clear"
  5. data-pr-filter="clearAll"
  6. href="<?= $block->escapeUrl($block->getClearUrl()) ?>"
  7. class="action clear filter-clear">
  8. <span><?= $block->escapeHtml(__('Clear All')) ?></span>
  9. </a>
  10. </div>
  11. <?php endif; ?>


因为父块试图使用子块的功能。

展开查看全部
2sbarzqh

2sbarzqh2#

  • 是否可以只使用css将secondDivInside移动到firstDiv?*

不.我不相信有一种方法(深奥与否)可以用CSS操纵/移动DOM的实际结构。
最低级的,尽管不优雅,将是复制div并使用display:none/block显示/隐藏它。
然而,这似乎是一个基本的结构问题。为什么你的元素以这样一种方式排序,移动重新排序必须完全检修?
这是一篇文章,讨论了移动的结构的优点/缺点,因为你设计你的网页.这是一个快速阅读,可以帮助你更好地概念化如何设计移动的<->桌面。https://codemyviews.com/blog/mobilefirst

nsc4cvqm

nsc4cvqm3#

你可以做的是:

  1. <div class="firstDiv">
  2. <div class="firstDivInside">...</div>
  3. <div class="secondDivInsideMobile">...</div>
  4. </div>
  5. <div class="secondDiv">
  6. <div class="secondDivInside">...</div>
  7. </div>

字符串
CSS

  1. .secondDivInsideMobile {
  2. display:none;
  3. }
  4. @media only screen and (max-width: 500px) {
  5. .secondDivInsideMobile {
  6. display:auto;
  7. }
  8. .secondDivInside {
  9. display:none;
  10. }
  11. }

展开查看全部
biswetbf

biswetbf4#

你不能用CSS操作DOM,但是你可以使用flexbox来获得一个看起来像你想要的标记的布局。
检查和玩这个页面:)
http://the-echoplex.net/flexyboxes/

k0pti3hp

k0pti3hp5#

你不能使用css操作DOM,但这可能是一个解决方案:

  1. .firstDiv {
  2. height: 100px;
  3. background-color: yellow;
  4. }
  5. .secondDiv {
  6. height: 100px;
  7. background-color: green;
  8. margin-top: 100px;
  9. }
  10. @media (max-width: 768px){
  11. .secondDiv {
  12. background: none !important;
  13. height: unset !important;
  14. margin-top: unset !important;
  15. }
  16. }

个字符
这个解决方案很简单:https://jsfiddle.net/y35wkpgt/

展开查看全部
l2osamch

l2osamch6#

基本上你不能使用CSS移动div,但是你可以根据viewport显示和隐藏div。这里有一个例子,我希望它能帮助你。

超文本标记语言

  1. <div class="firstDiv">
  2. <div class="firstDivInside">...</div>
  3. <div class="secondDivInside">...</div>
  4. </div>
  5. <div class="secondDiv">
  6. <div class="secondDivInside">...</div>
  7. </div>

字符串

CSS

  1. .secondDivInside {
  2. display: none;
  3. }
  4. .secondDiv .secondDivInside {
  5. display: block;
  6. }
  7. @media screen and (max-width: 767px) {
  8. .secondDivInside {
  9. display: block;
  10. }
  11. .secondDiv {
  12. display: none;
  13. }
  14. }

展开查看全部
idv4meu8

idv4meu87#

你可以简单地用flexbox..用ORDER来实现这一点

  1. .firstDiv {
  2. display: flex;
  3. }
  4. .firstDivInside {
  5. order: 1
  6. }
  7. .secondDivInside {
  8. order: 0
  9. }

字符串

z4bn682m

z4bn682m8#

1.对于@media下的元素集合displaynone.
1.加载元素后运行JS脚本.
1.在脚本内部,使用getComputedStyle()检查元素的display
1.如果是none,则将元素移动到新位置,并使用insertBefore()
1.将display设置为block或其他元素。
如果一个人把JS关掉,他什么也看不见,他什么也看不见。

  1. if(document.querySelector('.elmToMove')){
  2. if(window.getComputedStyle(document.querySelector('.elmToMove'), null).getPropertyValue("display")=='none'){
  3. if(document.querySelector('.newParent')){ //or any other way to get it
  4. document.querySelector('.newParent').insertBefore(document.querySelector('.elmToMove'), document.querySelector('.newParent').lastChild.nextSibling);
  5. document.querySelector('.elmToMove').style.setProperty('display','block','important');
  6. };
  7. } else{
  8. document.querySelector('.elmToMove').style.removeProperty('display');
  9. };
  10. };

字符串

展开查看全部

相关问题