仅使用CSS / JS更改元素的位置

时间:2018-02-12 14:19:09

标签: javascript html css getuikit

我正在使用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添加一个类,并添加自定义CSS和自定义JS。 知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

var obj = document.getElementById("node");
var parent = document.getElementById("parent");
parent.appendChild(obj);

这里,node是“toc uk-panel uk-panel-box-primary sticky-toc”元素。 parent是“uk-width-large-1-4”元素

您显然可以使用除我使用的任何其他DOM方法。 因此,如果要使用其类名类选择实体的DOM,则必须使用getElementsByClassName(“big long class name”)[0]来正确引用该实体

我只是想突出显示appendChild方法

答案 1 :(得分:0)

我认为最好的答案是使用CSS,但因为我不了解getukit而且我不知道如何使用CSS解决这个问题。

在这里你可以试试jQuery。告诉我你是否想用纯JS做这件事。

&#13;
&#13;
<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>
&#13;
&#13;
&#13;