001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.juneau.bean.html5;
018
019import org.apache.juneau.marshall.*;
020
021/**
022 * DTO for an HTML <a class="doclink" href="https://www.w3.org/TR/html5/grouping-content.html#the-dt-element">&lt;dt&gt;</a>
023 * element.
024 *
025 * <p>
026 * The dt element represents the term, or name, part of a term-description group in a description
027 * list (dl element). It is used to mark up the term that is being defined or described in a
028 * description list. The dt element can contain any flow content and is typically followed by
029 * one or more dd elements that provide the definition or description for the term.
030 *
031 * <h5 class='section'>Examples:</h5>
032 * <p class='bcode w800'>
033 *    <jk>import static</jk> org.apache.juneau.bean.html5.HtmlBuilder.*;
034 *
035 *    <jc>// Simple term</jc>
036 *    Dt <jv>simple</jv> = <jsm>dt</jsm>(<js>"HTML"</js>);
037 *
038 *    <jc>// Term with styling</jc>
039 *    Dt <jv>styled</jv> = <jsm>dt</jsm>(<js>"CSS"</js>)
040 *       .class_(<js>"term"</js>);
041 *
042 *    <jc>// Term with complex content</jc>
043 *    Dt <jv>complex</jv> = <jsm>dt</jsm>(
044 *       <js>"JavaScript"</js>,
045 *       <jsm>span</jsm>().class_(<js>"abbrev"</js>).children(<js>" (JS)"</js>)
046 *    );
047 *
048 *    <jc>// Term with links</jc>
049 *    Dt <jv>withLinks</jv> = <jsm>dt</jsm>(
050 *       <js>"Web Standards"</js>,
051 *       <jsm>a</jsm>(<js>"/standards"</js>, <js>" (Learn More)"</js>)
052 *    );
053 *
054 *    <jc>// Term with ID</jc>
055 *    Dt <jv>withId</jv> = <jsm>dt</jsm>(<js>"HTML"</js>)
056 *       .id(<js>"html-term"</js>);
057 *
058 *    <jc>// Term with styling</jc>
059 *    Dt <jv>styled2</jv> = <jsm>dt</jsm>(<js>"API"</js>)
060 *       .style(<js>"font-weight: bold; color: blue;"</js>);
061 *
062 *    <jc>// Term with multiple elements</jc>
063 *    Dt <jv>multiple</jv> = <jsm>dt</jsm>(
064 *       <js>"Responsive Design"</js>,
065 *       <jsm>span</jsm>().class_(<js>"new"</js>).children(<js>" (New)"</js>),
066 *       <jsm>span</jsm>().class_(<js>"popular"</js>).children(<js>" (Popular)"</js>)
067 *    );
068 * </p>
069 *
070 * <p>
071 * The following convenience methods are provided for constructing instances of this bean:
072 * <ul class='javatree'>
073 *    <li class='jc'>{@link HtmlBuilder}
074 *    <ul class='javatree'>
075 *       <li class='jm'>{@link HtmlBuilder#dt() dt()}
076 *       <li class='jm'>{@link HtmlBuilder#dt(Object...) dt(Object...)}
077 *    </ul>
078 * </ul>
079 * </p>
080 *
081 * <h5 class='section'>See Also:</h5><ul>
082 *    <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauBeanHtml5">juneau-bean-html5</a>
083 * </ul>
084 */
085@Marshalled(typeName = "dt")
086public class Dt extends HtmlElementMixed<Dt> {
087
088   /**
089    * Creates an empty {@link Dt} element.
090    */
091   public Dt() {}
092
093   /**
094    * Creates a {@link Dt} element with the specified child nodes.
095    *
096    * @param children The child nodes.
097    */
098   public Dt(Object...children) {
099      children(children);
100   }
101
102}