仅使用 CSS/JS 更改元素的位置
Change position of an element using CSS/JS only
我正在使用 Uikit 2 (https://getuikit.com/v2) - 我需要解决一个问题。
我得到了这个标记:https://codepen.io/anon/pen/jZwNeB
现在我需要做以下事情。这部分:
<div class="toc uk-panel uk-panel-box-primary sticky-toc" style="margin: 0px;"> ...</div>
应该显示在左侧 - 时间日期时间部分的正下方。但是 - 这很重要:我无法更改源本身。我只能在toc uk-panel uk-panel-box-primary sticky-toc
中添加一个class并添加自定义CSS和自定义JS。
知道如何解决这个问题吗?
var obj = document.getElementById("node");
var parent = document.getElementById("parent");
parent.appendChild(obj);
这里,节点是 "toc uk-panel uk-panel-box-primary sticky-toc" 元素。
parent 是 "uk-width-large-1-4" 元素
您显然可以使用除我使用的方法之外的任何其他 DOM 方法。
所以,如果你想 select 实体的 DOM 使用它的 class 名称 class,你必须使用 getElementsByClassName("big long class name")[0] 来正确引用该实体
我只是想强调 appendChild 方法
我认为最好的答案是使用 CSS,但是因为我不了解 getukit,而且我不知道如何仅使用 CSS 来解决这个问题。
在这里你可以试试jQuery。告诉我你是否想使用纯 JS 来做到这一点。
<link href='https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.min.css' rel='stylesheet'>
<div class="uk-grid">
<div class="uk-width-large-1-4">
<p class="uk-article-meta tm-article-date uk-margin-small selectionShareable">
<time datetime="2018-02-12T12:00:58+00:00">12.02.18</time>
</p>
</div>
<div class="uk-width-large-3-4">
<h1 class="uk-article-title">Test Content</h1>
<div class="uk-margin">
<div class="uk-sticky-placeholder" style="height: 52px; margin: 0px;">
<div class="toc uk-panel uk-panel-box-primary sticky-toc" style="margin: 0px;">
<ol class="toc-list ">
<li class="toc-list-item">
<a href="#" class="toc-link node-name--H1 is-active-link">Testa</a>
<ol class="toc-list is-collapsible">
<li class="toc-list-item"><a href="#test" class="toc-link node-name--H2 ">Test 2</a></li>
</ol>
</li>
</ol>
</div>
</div>
<p class="selectionShareable">Test Content.</p>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function(){
function recreate(){
let newElem = $('.sticky-toc').clone();
$('.sticky-toc').remove();
$('.tm-article-date').after(newElem);
}
recreate();
})
</script>
我正在使用 Uikit 2 (https://getuikit.com/v2) - 我需要解决一个问题。
我得到了这个标记:https://codepen.io/anon/pen/jZwNeB
现在我需要做以下事情。这部分:
<div class="toc uk-panel uk-panel-box-primary sticky-toc" style="margin: 0px;"> ...</div>
应该显示在左侧 - 时间日期时间部分的正下方。但是 - 这很重要:我无法更改源本身。我只能在toc uk-panel uk-panel-box-primary sticky-toc
中添加一个class并添加自定义CSS和自定义JS。
知道如何解决这个问题吗?
var obj = document.getElementById("node");
var parent = document.getElementById("parent");
parent.appendChild(obj);
这里,节点是 "toc uk-panel uk-panel-box-primary sticky-toc" 元素。 parent 是 "uk-width-large-1-4" 元素
您显然可以使用除我使用的方法之外的任何其他 DOM 方法。 所以,如果你想 select 实体的 DOM 使用它的 class 名称 class,你必须使用 getElementsByClassName("big long class name")[0] 来正确引用该实体
我只是想强调 appendChild 方法
我认为最好的答案是使用 CSS,但是因为我不了解 getukit,而且我不知道如何仅使用 CSS 来解决这个问题。
在这里你可以试试jQuery。告诉我你是否想使用纯 JS 来做到这一点。
<link href='https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.5/css/uikit.min.css' rel='stylesheet'>
<div class="uk-grid">
<div class="uk-width-large-1-4">
<p class="uk-article-meta tm-article-date uk-margin-small selectionShareable">
<time datetime="2018-02-12T12:00:58+00:00">12.02.18</time>
</p>
</div>
<div class="uk-width-large-3-4">
<h1 class="uk-article-title">Test Content</h1>
<div class="uk-margin">
<div class="uk-sticky-placeholder" style="height: 52px; margin: 0px;">
<div class="toc uk-panel uk-panel-box-primary sticky-toc" style="margin: 0px;">
<ol class="toc-list ">
<li class="toc-list-item">
<a href="#" class="toc-link node-name--H1 is-active-link">Testa</a>
<ol class="toc-list is-collapsible">
<li class="toc-list-item"><a href="#test" class="toc-link node-name--H2 ">Test 2</a></li>
</ol>
</li>
</ol>
</div>
</div>
<p class="selectionShareable">Test Content.</p>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function(){
function recreate(){
let newElem = $('.sticky-toc').clone();
$('.sticky-toc').remove();
$('.tm-article-date').after(newElem);
}
recreate();
})
</script>